【问题标题】:Business Logic Layer expose in WCF ServiceWCF 服务中的业务逻辑层公开
【发布时间】:2011-07-21 11:40:21
【问题描述】:

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

你能告诉我该怎么做吗?

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

我的业务层类

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

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

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

在客户端我无法获取 MessageContextHelper 类。

谢谢 JK

【问题讨论】:

    标签: wcf service logic layer


    【解决方案1】:

    WCF 不向客户端发送业务逻辑类。如果您使用的是 WCF 的 SOAP 版本(例如 BasicHttpBinding),那么 WCF 将公开的是您的服务合同中的方法。你的客户可以打电话给他们。

    因此,如果您希望公开业务逻辑类中的方法,请在 WCF 服务中创建方法,这些方法将依次调用业务层方法。

    一个非常初级(且不完整)的版本应该是这样的:

    命名空间 WCFService {

    public class MyService: IMyService
    
    [OperationContract]
    public String DoSomeStuff() {
          return MessageContext.DoSomething();
    }
    

    }

    【讨论】:

      【解决方案2】:

      您绝对不能(也不应该)从您的客户端代码中使用您的业务层。正如前面的回复消息,WCF 不会将您的业务类发送给客户端。考虑发送需要多长时间。业务层(您的 dll)应仅在服务器上使用。您的 WCF 应该只接受来自客户端的修改/新数据,将数据传递给业务层,然后将结果返回给客户端。

      【讨论】:

        猜你喜欢
        • 2018-08-02
        • 2012-01-13
        • 1970-01-01
        • 2017-08-08
        • 2011-01-20
        • 1970-01-01
        • 2010-12-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多