コード例 #1
0
ファイル: DynamicObjects.cs プロジェクト: rioka/dynamitey
        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")));
        }
コード例 #2
0
        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")));
        }