protected static object GetVisualBasicTestObject() { if (s__visualBasicTestObjectType == null) { // compile vb test class string vbSourceCode = new StreamReader(Assembly.GetExecutingAssembly().GetManifestResourceStream(typeof(BasePropertyTests), "SafePropertyTests_TestObject.vb")).ReadToEnd(); CompilerParameters args = new CompilerParameters(); args.OutputAssembly = "VbTestObject.dll"; args.GenerateInMemory = true; args.GenerateExecutable = false; args.IncludeDebugInformation = true; CodeDomProvider provider = CodeDomProvider.CreateProvider("VisualBasic"); CompilerResults results = provider.CompileAssemblyFromSource(args, vbSourceCode); if (results.Errors.HasErrors) { StringBuilder sb = new StringBuilder(); foreach (CompilerError error in results.Errors) { sb.Append(error.ToString()).Append("\n\r"); } throw new TypeLoadException("failed compiling test class: " + sb); } s__visualBasicTestObjectType = results.CompiledAssembly.GetType("VbTestObject"); ThisLastPropertyValue = DynamicField.Create(s__visualBasicTestObjectType.GetField("ThisLastPropertyValue")); ThisArg1 = DynamicField.Create(s__visualBasicTestObjectType.GetField("ThisArg1")); ThisArg2 = DynamicField.Create(s__visualBasicTestObjectType.GetField("ThisArg2")); ThisOptionalArg = DynamicField.Create(s__visualBasicTestObjectType.GetField("ThisOptionalArg")); ThisParamsArg = DynamicField.Create(s__visualBasicTestObjectType.GetField("ThisParamsArgs")); } object s__visualBasicTestObject = Activator.CreateInstance(s__visualBasicTestObjectType); return(s__visualBasicTestObject); }
protected virtual IDynamicField Create(FieldInfo field) { return(DynamicField.Create(field)); }