Ehsan Akbar
Ehsan Akbar

Reputation: 7299

Read the value of a string in the dll that is created dynamicly

I am trying to create a DLL file in runtime ,as a matter of fact i need to save an encoded data to DLL .My code is like this :

      class DllFile
    {
        public static void CreateDllFile(string source)
        {
            source = @"using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LicensecodeDll
{
    class Check
    {
        public string returnValue()
        {
            return " + source + ";" + "}}}";



            var provider = new CSharpCodeProvider();
            var options = new CompilerParameters
            {
                OutputAssembly = "test.dll"
            };

            var results = provider.CompileAssemblyFromSource(options, new[] { source });

        }

    }
}

every thing works fine and my ddl is created ,but i need to read the value that is saved on the dll file ,i mean i need the returnValue.how can i do that?

Best regards.Any ideas will be appreciated.

Upvotes: 0

Views: 77

Answers (1)

Matt
Matt

Reputation: 6050

You can load the assembly dynamically and use reflection to call that method. The code should be like this.

    Assembly a = Assembly.Load("test.dll");        
    Type myType = a.GetType("LicensecodeDll.Check");        
    MethodInfo myMethod = myType.GetMethod("returnValue");        
    object obj = Activator.CreateInstance(myType);       
    myMethod.Invoke(obj, null);

More detail is on MSDN: How to: Load Assemblies into an Application Domain

Upvotes: 2

Related Questions