Mono.Cecil을 사용하여 메서드에 사용자 지정 특성을 추가하려고합니다. 사용자 지정 특성의 생성자는 System.Type
입니다. Mono.Cecil을 사용하여 이러한 사용자 지정 특성을 만드는 방법과 System.Type 매개 변수에 대한 인수가 무엇인지 알아 내려고합니다. 지금까지 해봤Type을 인수로 사용하는 사용자 지정 특성을 추가하는 방법
public class SampleAttribute : Attribute {
public SampleAttribute (Type type) {}
}
:
내 속성은 다음과 같이 정의된다
var module = ...;
var method = ...;
var sampleAttributeCtor = ...;
var attribute = new CustomAttribute (sampleAttributeCtor);
attribute.ConstructorArguments.Add (
new ConstructorArgument (module.TypeSystem.String, module.GetType ("TestType").FullName));
을하지만 작동하지 않습니다. 어떤 생각?
var module=targetExe.MainModule;
var anothermodule=sampleDll.MainModule;
var custatt = new CustomAttribute(ctorReference);
var corlib =module .AssemblyResolver.Resolve((AssemblyNameReference)module.TypeSystem.Corlib);
var systemTypeRef = module.Import(corlib.MainModule .GetType("System.Type"));
custatt.ConstructorArguments.Add(new CustomAttributeArgument(systemTypeRef, module.Import(anothermodule.GetType("SampleDll.Annotation"))));
methodDef.CustomAttributes.Add(custatt);
어떤 제안을 다음과 같이
나는 코드를 업데이트 한?
나는 Mono.Cecil 질문에 답해도 괜찮지 만, 읽기 쉽도록 도와 주어야합니다. 제시된 코드는 색이 잘 잡히지 않고 지저분한 것이며, 몇 줄로 줄여서 질문에 대한 생각을 할 수 있습니다. 이 질문을 편집하여 예제를 제공 할 것입니다. –