Assembly.write方法抛出以下错误
成员'XXX.LoggingAspectAttribute'在另一个模块中声明,需要导入
我在我的代码中包含了以下几行
var type = _module.Import(typeof(LoggingAspectAttribute));
_module.Import(type.Resolve().Methods.First(m => m.Name == "OnExecute"));
_module.Import(type.Resolve().Methods.First(m => m.Name == "OnException"));
_module.Import(type.Resolve().Methods.First(m => m.Name == "OnComplete"));
_module.Import(typeof(LoggingAspectAttribute)).Resolve();
其中module被定义为程序集的主要模块
_module = ModuleDefinition.ReadModule(filename, new ReaderParameters()
{
ReadSymbols = true
});
有关如何解决此错误的任何想法?
答案 0 :(得分:0)
ModuleDefinition.Import()不会将任何内容导入模块,它只是从模块的角度返回对元数据的引用。
试试这个:
TypeReference type = _module.Import(typeof(LoggingAspectAttribute));
MethodReference onExecute = _module.Import(typeof(LoggingAspectAttribute).GetMethod("OnExecute"));
MethodReference onException = _module.Import(typeof(LoggingAspectAttribute).GetMethod("OnException"));
MethodReference onComplete = _module.Import(typeof(LoggingAspectAttribute).GetMethod("OnComplete"));