Visual Studio DSL(도메인 특정 언어) 도구에서 데코레이터의 표시 이름을 추가하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/71843

  •  09-06-2019
  •  | 
  •  

문제

내 DSL 프로젝트에는 내 도메인 클래스의 속성에 연결된 여러 데코레이터가 있는 모양이 있습니다.그러나 ieach 데코레이터에 DisplayName 속성(의미 있는 값으로 설정)이 있더라도 생성된 DSL 프로젝트에는 표시되지 않습니다.(저는 t4 파일 재생성을 사용하는 것을 잊지 않았습니다.)

표시하려는 값으로 표시 이름만 있는 각 속성에 대해 다른 데코레이터를 만들어야 합니까? 아니면 지금은 알아낼 수 없는 다른 방법이 있습니까?

도움이 되었습니까?

해결책

데코레이터의 표시 이름은 생성된 DSL의 요소가 "Example = a_value"로 표시되기를 원한다는 뜻이라고 가정합니다. 여기서 a_value는 실제 값이고 example은 속성 이름입니다.

과거에 내가 이 작업을 수행한 것은 탐색할 수 없고 데코레이터가 실제로 가리키는 두 번째 속성 "ExampleDisplay"를 만드는 것이었습니다.그런 다음 exampleDisplay의 Kind 속성을 "Calculated"로 설정했습니다.그런 다음 부분 클래스를 수행할 수 있는 데코레이터를 표시하기 위해 툴킷이 호출하려고 하는 메서드를 제공해야 합니다.

partial class ExampleElement
{
    string GetExampleDisplayValue()
    {
        return "Example : " + this.Example;
    }
}

속성 창을 사용해야 하는 DSL 다이어그램에서 속성을 설정하는 좋은 방법을 얻지 못하기 때문에 이는 이상적이지 않습니다.(기본 속성의 업데이트에 연결하지 않는 한 속성 창에서 때때로 지연이 발생합니다).실제 DSL 툴킷이 수행하는 매끄러운 편집을 GUI에서 수행하는 것이 가능할 수도 있지만 방법을 찾지 못했습니다.

물어볼 가치가 있을지도 몰라 VSX 포럼 아직 그렇게 하지 않았다면.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top