2010-01-11 7 views
1

현재 우리는 도메인 모델을 전선을 통해 직접 노출하는 여러 가지 WCF 서비스를 제공합니다. 즉, 도메인과 서비스 계층간에 매핑 할 DTO 계층이 없습니다. 나는 [DataContract]와 [DataMember]를 사용하여 도메인 객체를 직접 꾸미는 것 외에는 선택의 여지가 없습니다. 전선에 노출 된 모든 도메인 객체에 IExtensibleDataObject를 구현하려고합니다. IExtensibleDataObject를 기본 클래스에서 구현하는 데 문제가있는 사람이 있습니까? 그래서 나는 것 : 사전기본 클래스에 IExtensibleDataObject 구현

+1

코드가 잘 작동합니다. 사실, svcutil에 의해 생성 된 코드를 보면, 당신처럼 보이는 코드를 볼 수 있습니다. 자세한 내용은이 링크를 확인하십시오. http://msdn.microsoft.com/en-us/library/system.runtime.serialization.iextensibledataobject.aspx – Kwal

답변

1

감사 매트에서

[DataContract] 
public EntityBase:IExtensibleDataObject{///IExtensibleDataObject Impl} 

[DataContract] 
public Person:EntityBase{} 

[DataContract] 
public Employee:Person{} 

감사합니다. 나는 그것이 잘 작동한다고 생각하지만, 내 질문은 SOA 디자인과 관련이있다. OO 세계에서 이것은 잘된 일이지만, 도메인 객체가 DTO로 사용되기 때문에이 상속 체인을 추가하면 문제가 발생할 것이라는 걱정이 듭니다. 다른 사람이 IExtensibleDataObject를 구현하고 있습니까? 그렇다면 모든 datacontracts 또는 기본 클래스에 IExtensibleDataObject를 구현하고 있습니까?

+0

내가 당신이 묻는 것을 오해 한 것에 대해 사과드립니다. 순수한 SOA 관점에서 계약 관점에서 물건을 가릴 수 있으므로 IExtensibleDataObject와 같은 메커니즘을 갖는 것은 바람직하지 않습니다. 즉, 그 생각은 편리함 중 하나라고 생각합니다. 전문가 (게시물 자체)와 죄수 팀 (첫 번째 의견)을 모두 포함하는 좋은 게시물은 다음과 같습니다. http://bloggingabout.net/blogs/vagif/archive/2009/03/29/iextensibledataobject-is-not-only -for-backward-compatibility.aspx – Kwal

관련 문제