2017-04-27 1 views
1

을 반환 속성을 만들 :C#을 된 CodeDom 우리가 이런 구성을 사용할 수 있습니다 된 CodeDom에 백업 필드 속성을 만들려면 사전 요소

CodeMemberProperty property = new CodeMemberProperty; 
      property.GetStatements.Add(
       new CodeMethodReturnStatement(
        new CodeFieldReferenceExpression(
         new CodeThisReferenceExpression(), 
                 fieldName))); 

그러나 같은 결과에 대해 "CodeMethodReturnStatement"내 무엇을 건설해야합니다 :

_someDict = new Dictionary<string, string>(); 
_someKey = "someKey"; 

_someDict 및 _someKey는 SA의 회원입니다 :

public string SomeProp { get { return _someDict[_someKey]; } } 

나는 수업을 생성했다. 해설

+0

여러분은 CodeIndexerExpression 클래스가 필요하다고 생각합니다. – john

+0

질문을 편집하여 답변을 포함하지 마십시오. 대신 답으로 게시해야하며 수락 할 수 있습니다. – svick

답변

0

덕분에 나는이 같은 문제를 해결합니다 : 내 키 필드와 사전 필드 정적

CodeIndexerExpression indexerExpression = 
      new CodeIndexerExpression(
       new CodeFieldReferenceExpression(
        new CodeTypeReferenceExpression(typeof(Class1)), 
        "dict"), 
       new CodeFieldReferenceExpression(
        new CodeTypeReferenceExpression(typeof(Class1)), 
        "key")); 

참고하지만, 지역 변수에 대한 개념은 동일합니다. CodeTypeReferenceExpression 대신 CodeThisReferenceExpression을 사용하십시오.

public static string Prop 
    { 
     get 
     { 
      return Class1.dict[Class1.key]; 
     } 
    } 
관련 문제