.net 如何获取TypeReference的泛型参数?
Mono.Cecil中的类型专门化是通过子类化实现的.net 如何获取TypeReference的泛型参数?,.net,reflection,mono.cecil,.net,Reflection,Mono.cecil,Mono.Cecil中的类型专门化是通过子类化实现的 #load "load-references-release.fsx" open Mono.Cecil open Mono.Cecil.Rocks let mscorlib_path = @"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\mscorlib.dll" let mscorlib = AssemblyDefinition.ReadAssembly(mscorlib_path).M
#load "load-references-release.fsx"
open Mono.Cecil
open Mono.Cecil.Rocks
let mscorlib_path = @"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\mscorlib.dll"
let mscorlib = AssemblyDefinition.ReadAssembly(mscorlib_path).MainModule
let task = mscorlib.Types |> Seq.find (fun x -> x.Name = "Task`1")
let task_cons = task.GetConstructors()
let con =
task_cons
|> Seq.toArray
|> fun x -> x.[8]
con.Parameters.[0].ParameterType
TypeReference类型=。。。;
if(type.IsGenericInstance){
GenericInstanceType实例=(GenericInstanceType)类型;
IList genericArguments=instance.genericArguments;
}
Mono.Cecil中的类型专门化是通过子类化实现的
#load "load-references-release.fsx"
open Mono.Cecil
open Mono.Cecil.Rocks
let mscorlib_path = @"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\mscorlib.dll"
let mscorlib = AssemblyDefinition.ReadAssembly(mscorlib_path).MainModule
let task = mscorlib.Types |> Seq.find (fun x -> x.Name = "Task`1")
let task_cons = task.GetConstructors()
let con =
task_cons
|> Seq.toArray
|> fun x -> x.[8]
con.Parameters.[0].ParameterType
TypeReference类型=。。。;
if(type.IsGenericInstance){
GenericInstanceType实例=(GenericInstanceType)类型;
IList genericArguments=instance.genericArguments;
}
TypeReference type = ...;
if (type.IsGenericInstance) {
GenericInstanceType instance = (GenericInstanceType) type;
IList<TypeReference> genericArguments = instance.GenericArguments;
}