我们的应用程序中已经提供了业务逻辑层。它有很多课程。这是在单独的库(.Dll)中。现在我们想将它用于我们的WCF服务。为此,我们创建了新项目并提供了参考.Dll。但是我们无法看到我们的班级..我确认班级是公开的..
请你告诉我该怎么办?
这里我附上我需要做的代码
我的业务层类
namespace BusinessLayer
{
public class MessageContext : Dictionary<string, object>
{ ....}
}
现在我将此Project引用到我的WCF项目,并尝试将此类公开给WCF客户端。所以我创建了一个MessageContextHelper类,它继承自MessageContext,代码遵循
namespace WCFService
{
public class MessageContextHelper : MessageContext
{ ...... }
}
在客户端上,我无法获得MessageContextHelper类。
由于 JK
答案 0 :(得分:2)
WCF不会向客户端发送业务逻辑类。如果您使用的是WCF的SOAP版本(例如BasicHttpBinding),那么WCF将公开的是您的服务合同中的方法。您的客户可以拨打这些电话。
因此,如果您希望公开业务逻辑类中的方法,请在WCF服务中创建方法,然后再调用业务层方法。
一个非常基本的(而不是完整的)版本看起来像这样:
命名空间WCFService {
public class MyService: IMyService
[OperationContract]
public String DoSomeStuff() {
return MessageContext.DoSomething();
}
}
答案 1 :(得分:1)
您绝对不能(也不应该)使用客户端代码中的业务层。作为上一个回复消息,WCF不会将您的业务类发送到客户端。想想发送需要多长时间。业务层(您的dll)应仅在服务器上使用。您的WCF应该只接受来自客户端的修改/新数据,将数据传递到业务层,然后将结果返回给客户端。