현재 우리는 도메인 모델을 전선을 통해 직접 노출하는 여러 가지 WCF 서비스를 제공합니다. 즉, 도메인과 서비스 계층간에 매핑 할 DTO 계층이 없습니다. 나는 [DataContract]와 [DataMember]를 사용하여 도메인 객체를 직접 꾸미는 것 외에는 선택의 여지가 없습니다. 전선에 노출 된 모든 도메인 객체에 IExtensibleDataObject를 구현하려고합니다. IExtensibleDataObject를 기본 클래스에서 구현하는 데 문제가있는 사람이 있습니까? 그래서 나는 것 : 사전기본 클래스에 IExtensibleDataObject 구현
1
A
답변
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
관련 문제
- 1. WPF - 기본 클래스에 대한 System.ComponentModel.INotifyPropertyChanged 구현
- 2. 봉인 된 클래스에 IDisposable 구현
- 3. WCF - 도메인 개체 및 IExtensibleDataObject
- 4. 사용자 정의 클래스에 NSFastEnumeration 구현
- 5. 기본 클래스에 종속성 삽입
- 6. 하위 구현 전에 항상 호출되는 기본 클래스에 기본 메소드를 포함 할 수 있습니까?
- 7. 구현 기본 파일 시스템
- 8. Java 기본 구현
- 9. Iphone - numberOfSectionsInTableView의 기본 구현
- 10. 구현 및 이미 수퍼 클래스에 의해 구현 된 인터페이스?
- 11. StructureMap - 기본 클래스에 종속성 삽입?
- 12. asp.net의 기본 클래스에 공유 데이터
- 13. 구성원 기본 클래스에 대한 포인터
- 14. F # 클래스에 list [] 연산자를 구현 하시겠습니까?
- 15. 컬렉션을 포함하는 클래스에 대한 IXmlSerializable 구현
- 16. XmlTypeAttribute가있는 생성 된 클래스에 IXmlSerializable 구현
- 17. android에 대한 기본 UDP 구현
- 18. 기본 접두사 트리 구현 질문
- 19. 기본 클래스의 일반 메소드 구현
- 20. Asp.net 보안 : IIdentity.IsAuthenticated 기본 구현
- 21. 확장 메소드를 사용하여 클래스에 'Inject'구현을 구현하여 인터페이스를 구현 하시겠습니까?
- 22. 어떻게 기본 클래스의 메소드를 오버라이드 (override) 내 기본 클래스에
- 23. 모든 함수를 기본 클래스에 가상으로 선언해야합니까?
- 24. ToString을 기본 클래스에 가상으로 표시하면 어떻게됩니까?
- 25. 클래스에 연관된 기본 유형이 있는지 확인
- 26. 기본 패키지의 클래스에 액세스 할 수 없습니다.
- 27. 오브젝트를 기본 클래스에 캐스트하면 확장 오브젝트가 리턴됩니까?
- 28. 기본 클래스에 특성을 추가하기위한 디자인 패턴
- 29. 추상 템플릿 기본 클래스에 대한 포인터입니까?
- 30. 기본 레일즈 클래스에 대한 UML 다이어그램
코드가 잘 작동합니다. 사실, svcutil에 의해 생성 된 코드를 보면, 당신처럼 보이는 코드를 볼 수 있습니다. 자세한 내용은이 링크를 확인하십시오. http://msdn.microsoft.com/en-us/library/system.runtime.serialization.iextensibledataobject.aspx – Kwal