本文整理汇总了C#中Process.GetModule方法的典型用法代码示例。如果您正苦于以下问题:C# Process.GetModule方法的具体用法?C# Process.GetModule怎么用?C# Process.GetModule使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Process
的用法示例。
在下文中一共展示了Process.GetModule方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Create
static public DebugType Create(Process process, ICorDebugClass corClass, params ICorDebugType[] typeArguments)
{
MetaDataImport metaData = process.GetModule(corClass.Module).MetaData;
bool isValueType = false;
uint superClassToken = metaData.GetTypeDefProps(corClass.Token).SuperClassToken;
if ((superClassToken & 0xFF000000) == 0x02000000) { // TypeDef
if (metaData.GetTypeDefProps(superClassToken).Name == "System.ValueType") {
isValueType = true;
}
}
if ((superClassToken & 0xFF000000) == 0x01000000) { // TypeRef
if (metaData.GetTypeRefProps(superClassToken).Name == "System.ValueType") {
isValueType = true;
}
}
int getArgsCount = metaData.GetGenericParamCount(corClass.Token);
Array.Resize(ref typeArguments, getArgsCount);
ICorDebugType corType = corClass.CastTo<ICorDebugClass2>().GetParameterizedType(
isValueType ? (uint)CorElementType.VALUETYPE : (uint)CorElementType.CLASS,
typeArguments
);
return Create(process, corType);
}
示例2: DebugType
DebugType(Process process, ICorDebugType corType)
{
if (corType == null) throw new ArgumentNullException("corType");
this.process = process;
this.corType = corType;
this.corElementType = (CorElementType)corType.Type;
if (this.IsClass || this.IsValueType) {
this.module = process.GetModule(corType.Class.Module);
this.classProps = module.MetaData.GetTypeDefProps(corType.Class.Token);
}
if (this.IsClass || this.IsValueType || this.IsArray || this.IsPointer) {
foreach(ICorDebugType t in corType.EnumerateTypeParameters().Enumerator) {
typeArguments.Add(DebugType.Create(process, t));
}
}
this.fullName = GetName(true);
this.name = GetName(false);
}