本文整理汇总了C#中Mono.Cecil.TypeReference.GetOriginalType方法的典型用法代码示例。如果您正苦于以下问题:C# TypeReference.GetOriginalType方法的具体用法?C# TypeReference.GetOriginalType怎么用?C# TypeReference.GetOriginalType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mono.Cecil.TypeReference
的用法示例。
在下文中一共展示了TypeReference.GetOriginalType方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Resolve
public TypeDefinition Resolve (TypeReference type)
{
type = type.GetOriginalType ();
if (type is TypeDefinition)
return (TypeDefinition) type;
AssemblyNameReference reference = type.Scope as AssemblyNameReference;
if (reference != null) {
AssemblyDefinition assembly = AssemblyResolver.Resolve (reference);
if (assembly == null)
return null;
return Resolve (assembly.MainModule, type);
}
ModuleDefinition module = type.Scope as ModuleDefinition;
if (module != null)
return Resolve (module, type);
ModuleReference mod_reference = type.Scope as ModuleReference;
if (mod_reference != null) {
foreach (ModuleDefinition netmodule in type.Module.Assembly.Modules)
if (netmodule.Name == mod_reference.Name)
return Resolve (netmodule, type);
}
throw new NotImplementedException ();
}
示例2: Resolve
public TypeDefinition Resolve (TypeReference type)
{
type = type.GetOriginalType ();
if (type is TypeDefinition)
return (TypeDefinition) type;
AssemblyNameReference reference = type.Scope as AssemblyNameReference;
if (reference != null) {
AssemblyDefinition assembly = Resolve (reference);
return assembly.MainModule.Types [type.FullName];
}
ModuleDefinition module = type.Scope as ModuleDefinition;
if (module != null)
return module.Types [type.FullName];
throw new NotImplementedException ();
}
示例3: IsVisibleFrom
bool IsVisibleFrom (TypeDefinition type, TypeReference reference)
{
if (reference == null)
return true;
if (reference is GenericParameter || reference.GetOriginalType () is GenericParameter)
return true;
TypeDefinition other = reference.Resolve ();
if (other == null)
return true;
if (!AreInDifferentAssemblies (type, other))
return true;
if (IsPublic (other))
return true;
return false;
}