형식 공급자와 함께 놀고 있으며 생성 된 새 형식의 public static 메서드에 인용을 컴파일하려고합니다. 여기에 내가 무엇을 가지고 :F에서 새 형식의 public static 메서드로 인용을 컴파일하는 방법
let CreateType<'i> name methodName quotation =
let assemblyName = new AssemblyName(Name = "tmpAssembly")
let assemblyBuilder =
System.AppDomain.CurrentDomain.DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.RunAndSave)
let filename = "tmpAssembly.dll"
let tmpModule = assemblyBuilder.DefineDynamicModule(filename,filename)
// create a new type builder
let typeBuilder =
tmpModule.DefineType(
name,
TypeAttributes.Public ||| TypeAttributes.Class,
null, // parentType
[|typeof<'i>|])
let attr = MethodAttributes.Public ||| MethodAttributes.HideBySig ||| MethodAttributes.Static
let methodImpl =
typeBuilder.DefineMethod(
methodName,
attr,
typeof<unit>, // todo
[||]) // todo
let il = methodImpl.GetILGenerator()
// compile quotation to method
typeBuilder.CreateType()
나는 .Compile() 메소드가 알고하지만 난 그게 내가 필요하지 생각합니다. 어떤 아이디어?
힌트를 보내 주셔서 감사합니다. 그래서 지워진 타입을 만드는 방법을 찾고 있습니다. – forki23