我试图理解关于wcf的一些事情我已经创建了一个wcf项目之后我添加了下面的类
namespace WcfService1
{
[DataContract]
public abstract class Class1
{
string stam;
bool bstm;
}
}
另一个班级
namespace WcfService1
{
[DataContract]
public class Class2 : Class1
{
}
}
这是我的ServiceContract
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的实例?
我的错误消息: 错误3命名空间“WebApplication1.ServiceReference1”中不存在类型或命名空间名称“Class2”(您是否缺少程序集引用?)C:\ adt-bundle-windows-x86_64-20131030 \ workspace \ ServerSide \ WcfService1 \ WebApplication1 \ Default.aspx.cs 15 31 WebApplication1
答案 0 :(得分:0)
Class1和Class2是抽象类,这意味着您无法创建它们的实例。 http://msdn.microsoft.com/en-us/library/sf985hc5.aspx
如果要返回Class1或Class2类型的对象,则必须:
abstract
ServiceClient1
编辑:这听起来基于您的评论,就像您只需要在其中添加对Class2的项目的引用。在使用visual studio时,这对于了解如何操作非常重要。这是一个如何做到这一点的链接: http://msdn.microsoft.com/en-us/library/f3st0d45(v=vs.100).aspx
添加引用后,使用Class2在文件顶部添加using语句,如下所示:
using WcfService1
我建议如果你没有在服务中使用Class2作为参数或返回值,你将它移动到另一个项目并从客户端和服务引用它。