나는 서버 측 부분과 클라이언트 측 부분을 가진 어플리케이션을 가지고있다. 서버 측 부분은 WebApi2 및 EF6로 구현되며 serializer로 Json 및 Protobuf를 사용합니다. 따라서 [DataMember]를 내 모델 속성의 특성으로 사용합니다. 여기서는 Protobuf serialiser 때문에 [DataMember (Order = number)] 속성에 순서를 지정해야합니다.T4에서 edmx의 DataMember 속성 읽기
제 서버 측 모델 (codefirst)에서 모델 정보를 보유하고있는 edmx 파일을 생성합니다. 클라이언트 측에서는 edmx 파일을 사용하는 t4 템플릿으로이 모델을 생성합니다. Protobuf를 사용하기 전에 DataMember 속성을 잘 작동하는 t4 템플릿의 모든 속성 위에 둡니다. 하지만 이제 Protobuf와 작동하도록 서버에서와 동일한 주문을 사용해야합니다. 즉, edmx에서 DataMember 특성을 읽고 Order 값을 찾아야합니다. 그러나 나는 그 속성을 읽을 수 없다.
은 내가edmProperty.TypeUsage.Facets
이 객체에 대한 몇 가지 다른 속성을 읽으려고. 나는 또한 Google에서 검색 한 t4 템플릿에 대한 몇 가지 sampleprojects보세요. 그러나 운이 없다.
그래서 속성의 순서는 어떻게 읽을 수 있습니까?
MyServerModel
{
[DataMember(Order=1)] //this number of the order is what I'm looking for
MyProperty{get;set;}
}
이제 T4의 마법을 사용하고 edmx 파일의 도움으로 다음을 생성하십시오. 모든 회원이 DataMember를 속성 때문에
MyClientModel
{
[DataMember(Order=1)] //I want to generate this Attribute with the t4 template from
//the edmx file
MyProperty{get;set;}
}