public void TestCodeDomLateTypeBind() { // http://stackoverflow.com/questions/16918612/dynamically-use-runtime-compiled-assemlby/16920438#16920438 string code = @" namespace CodeInjection { public static class DynConcatenateString { public static string Concatenate(string s1, string s2){ return s1 + "" ! "" + s2; } } }"; var codeProvider = new CSharpCodeProvider(); var parameters = new CompilerParameters { GenerateExecutable = false, GenerateInMemory = true }; CompilerResults cr = codeProvider.CompileAssemblyFromSource(parameters, code); dynamic DynConcatenateString = new DynamicObjects.LateType(cr.CompiledAssembly, "CodeInjection.DynConcatenateString"); Assert.That("1 ! 2", Is.EqualTo(DynConcatenateString.Concatenate("1", "2"))); }
public void TestCodeDomLateTypeBind() { // http://stackoverflow.com/questions/16918612/dynamically-use-runtime-compiled-assemlby/16920438#16920438 string code = @" namespace CodeInjection { public static class DynConcatenateString { public static string Concatenate(string s1, string s2){ return s1 + "" ! "" + s2; } } }"; var codeProvider = new CSharpCodeProvider(); var parameters = new CompilerParameters {GenerateExecutable = false, GenerateInMemory = true}; CompilerResults cr = codeProvider.CompileAssemblyFromSource(parameters,code); dynamic DynConcatenateString = new DynamicObjects.LateType(cr.CompiledAssembly, "CodeInjection.DynConcatenateString"); Assert.That("1 ! 2", Is.EqualTo(DynConcatenateString.Concatenate("1","2"))); }