我有这个属性类:
[AttributeUsage(AttributeTargets.Assembly)]
public class PostProcessedAssemblyAttribute : Attribute
{
}
然后写了这段代码:
var moduleG = assembly.MainModule;
var attributeConstructor =
moduleG.ImportReference(
typeof(PostProcessedAssemblyAttribute).GetConstructor(Type.EmptyTypes));
var attribute = new CustomAttribute(attributeConstructor);
assembly.CustomAttributes.Add(attribute);
assembly.Write(assemblyPath, writerParameters);
如果我回读了程序集,我希望该属性存在,但事实并非如此。
我不是100%肯定我在做什么,所以我肯定做错了(例如我不确定从主模块导入属性是否正确),你能指出问题所在吗?
我只需要将程序集标记为已处理。
答案 0 :(得分:0)
代码确实有用,我只是错误地使用assembly.CustomAttributes.Contains查找属性,而这些属性根本无法工作。最后我解决了它从实际的Type创建一个TypeReference并检查CustomAttribute.AttributeType.FullName对我需要检查的TypeReference的FullName。