выползает ошибка("Access is denied: 'EC.Math.CodeBuilder'.":"") в CodeGenClass.CreateType();
public static CodeBuilder BuildFunc(TreeBuilder.Node Tree)
{
AssemblyName assemblyName = new AssemblyName();
assemblyName.Name = "CodeGenClassAssembly";
AssemblyBuilder assembly=Thread.GetDomain().DefineDynamicAssembly(assemblyName,
AssemblyBuilderAccess.Run);
ModuleBuilder module=assembly.DefineDynamicModule("CodeGenModule");
TypeBuilder CodeGenClass = module.DefineType("CodeGenClass", TypeAttributes.Public, typeof(CodeBuilder));
ConstructorBuilder constructor = CodeGenClass.DefineConstructor(
MethodAttributes.Public, CallingConventions.Standard, null);
ILGenerator constructorIL = constructor.GetILGenerator();
constructorIL.Emit(OpCodes.Ldarg_0);
ConstructorInfo superConstructor = typeof(Object).GetConstructor(new Type[0]);
constructorIL.Emit(OpCodes.Call, superConstructor);
constructorIL.Emit(OpCodes.Ret);
MethodBuilder mb = CodeGenClass.DefineMethod("Calc",
MethodAttributes.PrivateScope
|MethodAttributes.FamANDAssem
|MethodAttributes.Family
|MethodAttributes.Public
|MethodAttributes.Virtual
|MethodAttributes.HideBySig
|MethodAttributes.ReuseSlot,typeof(double),new Type[]{typeof(double), typeof(double), typeof(double)});
ILGenerator IL=mb.GetILGenerator();
FuncCodeGen(Tree,IL);
IL.Emit(OpCodes.Ret);
Type t = CodeGenClass.CreateType(); //вот здесь она и вылезает
return (CodeBuilder)Activator.CreateInstance(t);
}
Весь проект:
http://ifolder.ru/1804376
Уже какой день любовью занимаюсь — так и не понял в чем ошибка.
Заранее благодарю всех, кто уделит время моей проблеме.