2011-07-15 39 views
2

美好的一天。 我尝试使用一个WCF服务来构建Windows和WP7应用程序。为了更方便,我想在一个公共库中定义我的所有合约和接口。但是,因为WP7项目倾斜参考赢库我创建了一个WP7的类库,并在他身上我创造下一个类:适用于WP7和Windows的公共库项目

[ServiceContract] 
    public interface IStubSrv 
    { 
     [OperationContract] 
     void Foo1(); 
     [OperationContract] 
     void Foo2(); 
} 

但我有一个问题:当我到这个库中添加在Win-项目参考运行时我得到一个异常:

无法加载文件或程序集“System.ServiceModel,版本= 2.0.5.0,文化=中性公钥= 31bf3856ad364e35”或它的一个依赖。

如果我从公共库中删除参考System.ServiceModel - 我可以对我在Win-项目库中添加引用,但我不能使用的ServiceContract和DataContract通过WCF属性,而且比CLR不能使用这个库。

所以我的直接问题:我可以创建通用库whith定义WCF-契约,它可以由WCF基础设施,Windows应用程序和WP7应用程序使用?或者我必须使用完全相同的代码创建两个不同的程序集?

+0

+1。你救了我从发布问题到SO – Sandy

回答

1

是的,可以创建一个可以直接在WP7和Windows应用程序之间共享的库(我假设你的意思是WPF/WinForms?)。你可以通过创建一个Portable Class Library来做到这一点。

您可以使用的API取决于您希望定位的平台,例如,如果您希望将便携式类库用于XBox,则这些API非常有限。但是对于WP7/WinForms/WPF/ASP.NET,您可以共享相当多的代码,包括WCF客户端代码。

+0

谢谢,它有帮助。 –