0
모노 세실로 일리노이 주석을 얻고 설정할 수 있습니까? patcher를 사용하여 어셈블리에 주석을 추가하려고합니다. 따라서 patcher가 파일을 두 번 실행하면 주석에 액세스하여 변경 사항을 두 번 수행하지 않아도됩니다.일리노이와 세실의 의견
모노 세실로 일리노이 주석을 얻고 설정할 수 있습니까? patcher를 사용하여 어셈블리에 주석을 추가하려고합니다. 따라서 patcher가 파일을 두 번 실행하면 주석에 액세스하여 변경 사항을 두 번 수행하지 않아도됩니다.일리노이와 세실의 의견
아니요 methodbody에 의견을 추가 할 수 없습니다.
하지만 처음 실행시 사용자 지정 특성으로 정보를 추가하여 메타 데이터에 정보를 유지할 수 있습니다. 복잡한 데이터를 필요로 할 때 그것은 types in custom attributes are limited to 때문에 조금 까다로운 일이 될 수있다 : 다음과 같은 유형의
- 하나 : 부울, 바이트, 문자, 더블, 플로트, INT, 긴, 짧은 문자열입니다.
- 유형 개체입니다.
- 유형 System.Type.
- 공개 액세스 가능성 및 중첩 된 유형 (있는 경우)도 공개 접근성 (섹션 17.2)을 갖는 경우, enum 유형.
- 위 유형의 1 차원 배열.
하지만 당신은 약간의 창조적 때의이 같은 메타 데이터를 변경 한 후 methodbody에서 오프셋을 표시 할만큼 추가 할 수 있습니다 때, 예를 들어 행할 수 있어야한다 :
public class C
{
[TypeOneChanges(new uint[] { 0, 16, 124 })]
[TypeTwoChanges(new uint[] { 5, 10 })]
public void M() { }
}
[AttributeUsage(System.AttributeTargets.Method)]
class RemarkableOffsetAttribute : Attribute
{
public uint[] Offsets { get; }
public RemarkableOffsetAttribute(uint[] offsets)
{
Offsets = offsets;
}
}
class TypeOneChangesAttribute : RemarkableOffsetAttribute
{
public TypeOneChangesAttribute(uint[] offsets) : base(offsets) { }
}
class TypeTwoChangesAttribute : RemarkableOffsetAttribute
{
public TypeTwoChangesAttribute(uint[] offsets) : base(offsets) { }
}