无法将“System.Windows.Forms”引用添加到我的 WCF 服务库
本文关键字:添加 我的 WCF 服务 引用 System Forms Windows | 更新日期: 2023-09-27 18:31:10
我无法将System.Windows.Forms
添加到我的 WCF 服务库中。
我想从我的方法GetItems(string path)
返回一个List<ListViewItem>
,我也尝试添加System.Windows.Forms
的引用,但没有发现看起来WCF服务库不支持它。
任何想法我该怎么做?
namespace WcfServiceLibrary1
{
[ServiceContract]
public interface IFileManager
{
[OperationContract]
List<ListViewItem> collection(string path);
}
}
这是我Item.cs
课:
namespace WcfServiceLibrary1
{
[DataContract]
public class Item
{
[DataMember]
public string name;
[DataMember]
public string path;
[DataMember]
public long size;
[DataMember]
public DateTime date;
}
}
WCF 被设计为一个可互操作的服务平台,因此我建议不要使用 .NET 特定的数据类型(如 ListViewItem
)作为服务的返回类型。毕竟,PHP 或 Ruby 客户端会如何处理这样的对象?
相反:使用 Item
类,从 WCF 服务返回这些类的列表,并将其留给调用应用程序根据需要将其转换为 ListViewItem
s。
另外:从 WCF 服务返回ListViewItem
会严重限制该服务的功能。如果某个客户端想要获取该数据,但以其他方式(而不是ListView
)呈现它,他们就不能再使用该服务调用了......通过仅返回数据元素(如Item
)类,您可以由调用方决定如何处理该数据,以及如何在屏幕上显示它。我认为这是一件好事,不应该改变!
不应从 WCF 服务返回窗体控件或控件列表。返回类型可以是 数据协定 、 消息协定、.NET 基元类型和可以通过网络序列化的类型。
WCF 服务应该公开数据而不是 UI 控件。这取决于客户端应用程序是否以任何形式显示该数据。您应该创建 Windows 客户端以在列表视图中显示数据。