我希望消費者應用程序向wcf服務發送一些數據結構,然後此服務將數據傳遞給業務模型對象。將數據從客戶端傳遞到wcf服務到域層
我想避免需要手動將服務數據對象的每個屬性複製到新的業務對象。
例如:
[DataContract]
public class MyServiceData
{
[DataMember]
public Property1() { get; set;}
[DataMember]
public Property2() { get; set;}
[DataMember]
public Property3() { get; set;}
}
public class MyWcfService : IMyWcfService
{
public void Operation1(MyServiceData data)
{
var obj = new DomainObject();
obj.Property1 = data.Property1;
obj.Property2 = data.Property2;
obj.Property3 = data.Property3;
obj.DoSomething();
}
}
我可以把MyServiceData類業務對象層中,但我不認爲它是使用一個業務模型對象這些WCF服務屬性,是一件好事。
有什麼設計模式可以用來實現這個嗎?
您是否嘗試過使用一個映射到移動這樣的簡單結構/模型之間的數據? – 2015-03-13 20:17:10
但是用mapper這個副本還是會發生的吧? 不是一個好主意,保持跨層數據對象的相同的引用? 這也會避免每次添加新屬性時修改複製代碼 – Jonathan 2015-03-13 21:28:30
這會發生,是正確的。但是Mapper使它更簡單(在你的例子中4行代碼)。你是正確的,一個純粹的域模型不應該有WCF標籤。如果你想要純圖層,那麼需要在某個地方進行映射。 – 2015-03-13 23:04:48