业务逻辑层在WCF服务中公开

时间:2011-03-23 16:37:20

标签: wcf service logic layer

我们的应用程序中已经提供了业务逻辑层。它有很多课程。这是在单独的库(.Dll)中。现在我们想将它用于我们的WCF服务。为此,我们创建了新项目并提供了参考.Dll。但是我们无法看到我们的班级..我确认班级是公开的..

请你告诉我该怎么办?

这里我附上我需要做的代码

我的业务层类

namespace BusinessLayer
{
    public class MessageContext : Dictionary<string, object>
        { ....}
}

现在我将此Project引用到我的WCF项目,并尝试将此类公开给WCF客户端。所以我创建了一个MessageContextHelper类,它继承自MessageContext,代码遵循

namespace WCFService
{ 
    public class MessageContextHelper : MessageContext
      { ...... }
}

在客户端上,我无法获得MessageContextHelper类。

由于 JK

2 个答案:

答案 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应该只接受来自客户端的修改/新数据,将数据传递到业务层,然后将结果返回给客户端。