在客户机上使用wcf类
本文关键字:wcf 客户机 | 更新日期: 2023-09-27 17:54:50
我想了解一些关于wcf我已经创建了一个wcf项目之后,我已经添加了以下类
namespace WcfService1
{
[DataContract]
public abstract class Class1
{
string stam;
bool bstm;
}
}
和另一个类
namespace WcfService1
{
[DataContract]
public class Class2 : Class1
{
}
}
这是我的服务合同
namespace WcfService1
{
[ServiceContract]
public interface IService1
{
[OperationContract]
string GetData(int value);
}
}
我在解决方案中添加了web应用程序,并在我的wcf服务中添加了服务引用下面是一些来自客户端的代码
Service1Client proxy = new Service1Client();
ServiceReference1.Class2 c = new ServiceReference1.Class2();
现在我的问题是如何在客户端创建class1和class2的实例?
My Error msg:错误3名称空间'WebApplication1 '中不存在'Class2'类型或名称空间。servicerreference1’(您是否缺少一个程序集引用?)C:'adt-bundle-windows-x86_64-20131030'workspace'ServerSide'WcfService1'WebApplication1'Default.aspx.cs 15 31 WebApplication1
Class1和Class2是抽象类,这意味着您不能创建它们的实例。http://msdn.microsoft.com/en-us/library/sf985hc5.aspx
如果你想返回Class1或Class2类型的对象,你必须:
- 从类定义中删除
abstract
- 实现一个返回Class1或Class2对象的WCF服务方法
- 重新生成对WCF服务的引用,看起来就像您之前生成
ServiceClient1
所做的那样
Edit:根据你的评论,听起来你只需要添加一个包含Class2的项目的引用。在使用visual studio时,了解如何做到这一点非常重要。这里有一个关于如何做到这一点的链接:http://msdn.microsoft.com/en-us/library/f3st0d45 (v = vs.100) . aspx
一旦添加了引用,使用Class2在文件的顶部添加一个using语句,如下所示:using WcfService1
如果您没有在服务中使用Class2作为参数或返回值,我建议您将它移到不同的项目中,并从客户端和服务中引用它。