C# WCF与工厂设计模式

C# WCF与工厂设计模式,c#,wcf,C#,Wcf,我已经使用某种“工厂”设计模式创建了一个相当复杂的应用程序。这样,我有一个定义类的接口,一个实现接口的类,还有一个静态类和一个创建实例的静态方法。该静态方法(工厂方法)返回接口类型,并且只有工厂类可以访问我的类型类。 所以,如果我有私有类A,我将有公共接口IA和静态工厂类工厂。“Factory”类是唯一可以访问“A”的类,它返回类型“IA”。 这样,整个项目都在使用接口(例如“IA”),将接口作为参数传递,等等。简单地说,我的应用程序除了在工厂类之外,从来没有使用过类“A” 现在,棘手的部分-我

我已经使用某种“工厂”设计模式创建了一个相当复杂的应用程序。这样,我有一个定义类的接口,一个实现接口的类,还有一个静态类和一个创建实例的静态方法。该静态方法(工厂方法)返回接口类型,并且只有工厂类可以访问我的类型类。 所以,如果我有私有类A,我将有公共接口IA和静态工厂类工厂。“Factory”类是唯一可以访问“A”的类,它返回类型“IA”。 这样,整个项目都在使用接口(例如“IA”),将接口作为参数传递,等等。简单地说,我的应用程序除了在工厂类之外,从来没有使用过类“A”

现在,棘手的部分-我决定将我的应用程序分为客户端和服务器端。这些部件将使用WCF进行通信。但我有一个问题——对于WCF,我不能像目前为止在整个代码中那样使用接口作为返回类型/参数


是否有任何方法可以使我的项目在不更改“只知道接口”代码的基础的情况下工作?

创建一个与接口
IA
中的属性相同的类。您可以将服务操作的返回类型指定为此类的类型。在服务操作中,创建此类的对象(DTO),并映射
IA
类型对象的值。现在您可以返回此DTO。

对不起,“DTO”代表RR:)数据传输对象。它应该是一个哑对象(没有行为),并且只用于在应用程序层/层之间传输对象的状态。您能给出WCF使用的代码示例吗?不太可能,因为我在一个解决方案中有三个项目,这太复杂了:\n一个项目是客户端代码(mostyle用户界面),另一个是由客户端和wcf共享类型的ClassLib,第三个项目是wcf服务库。。。