我正在尝试开发一个非常简单的WCF应用程序。 WCF服务器将安装在Windows 10计算机中,我想使用Windows 10计算机中的WPF应用程序来使用此服务,并且我还希望使用Xamarin拥有另一个适用于Android的应用程序。
在Visual Studio中,我看到可以创建Net Core库,并且看到Net Core与WCF I can see in this web兼容。
我也知道Net Core可以在Windows,Linux和Mac中运行。 因此,我想知道是否可以开发一个Net core库来开发客户端,以便可以在WPF和Android应用程序中使用它。
我的疑问是,当我在WPF应用程序中向Net Core库项目添加引用时,我看到一个黄色三角形,一个警告,因此我猜WPF无法使用Net Core库。
所以我在想,也许对于WCF层,我必须创建一个可由WPF应用程序和Android应用程序使用的Net Standard项目。但是我想知道这是唯一的方法还是WPF应用程序可以使用某种方式使用Net Core库而无需使用诸如Net Standard之类的中间项目。
对于服务器,我也在考虑使用Net Core,因为该项目将不会被任何其他项目引用,并且Net Core可以在Windows中使用。
答案 0 :(得分:2)
好吧,您应该创建一个.Net标准类库(因此,不是 .Net Core),在其中放入WCF客户端代码,然后可以从.Net Core或.net中引用它。 Net Full项目。 .Net标准类库将为您提供最大的灵活性,因此它是共享库的推荐项目类型。
但是根据docs, see last line,您需要在服务器端使用.Net Full:
仍应使用完整的.NET Framework版本创建WCF服务应用程序。
答案 1 :(得分:1)
但是我想知道这是唯一的方法还是WPF应用程序可以某种方式使用Net Core库而无需使用诸如Net Standard之类的中间项目。
不。面向.NET Framework的WPF应用程序无法引用.NET Core项目。
.NET Core 3当前位于preview中,但是它确实支持WPF,这意味着您可以从面向.NET Core的WPF应用程序中引用.NET Core项目。但是,面向.NET Framework的应用程序无法引用针对.NET Core的库,反之亦然。
您应该更喜欢在类库项目中定位.NET Standard,因为它们可以从面向.NET Framework或.NET Core的应用程序中使用。
答案 2 :(得分:0)
.Net Core平台尚不支持WPF / Winforms应用程序。
当前:
到目前为止,我的意思是.Net core 2.x版本。
因此,如果您的应用程序不基于.net core的2.x标准,则您将无法引用.net core程序集。
未来:
.Net core 3 preview可用,并且.net核心平台上现已提供Winforms / WPF应用程序。
希望这会有所帮助。