2016-06-12 6 views
0

모노 세실로 일리노이 주석을 얻고 설정할 수 있습니까? patcher를 사용하여 어셈블리에 주석을 추가하려고합니다. 따라서 patcher가 파일을 두 번 실행하면 주석에 액세스하여 변경 사항을 두 번 수행하지 않아도됩니다.일리노이와 세실의 의견

답변

1

아니요 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) { } 
}