2011-03-23 60 views
0

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

请问我该怎么办?

这里我附上我的代码是什么,我需要做

我的业务层类

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

现在我引用这个项目到我的WCF项目,并试图揭露这一类为WCF客户端。所以我创建一个MessageContextHelper类从MessageContext的继承代码以下

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

在客户端我没能获得MessageContextHelper类。

感谢 JK

回答

2

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

因此,如果您想要公开业务逻辑类中的方法,请在您的WCF服务中创建方法,然后再调用业务层方法。

一个非常基本的(不完整)的版本将是这个样子:

命名空间WCFService {

public class MyService: IMyService 

[OperationContract] 
public String DoSomeStuff() { 
     return MessageContext.DoSomething(); 
} 

}

1

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