Уровень бизнес-логики в сервисе WCF - PullRequest
0 голосов
/ 23 марта 2011

У нас уже есть слой бизнес-логики, доступный в нашем приложении. Здесь много классов. и это в отдельной библиотеке (.Dll). Теперь мы хотим использовать это в нашей службе WCF. Для этого мы создаем новый проект и даем ссылку на этот .Dll. Но мы не можем видеть наш класс .. Я проверяю, что класс общедоступен ..

Не могли бы вы дать мне знать, что мне делать?

Здесь я прилагаю свой код, что мне нужно сделать

Мой бизнес уровень Layer

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

Теперь я отсылаю этот проект к своему проекту WCF и пытался выставить этот класс в клиент WCF. Поэтому я создаю один класс MessageContextHelper, который наследует от MessageContext код, следующий за

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

На клиенте я не могу получить класс MessageContextHelper.

Спасибо JK

Ответы [ 2 ]

2 голосов
/ 25 марта 2011

WCF не отправляет классы бизнес-логики клиенту.Если вы используете SOAP-версию WCF (например, BasicHttpBinding), то WCF будет раскрывать методы, содержащиеся в вашем сервисном контракте.Ваш клиент может вызывать их.

Поэтому, если у вас есть методы в классе бизнес-логики, которые вы хотите раскрыть, создайте методы в своей службе WCF, которые в свою очередь будут вызывать методы бизнес-уровня.очень элементарная (и не полная) версия будет выглядеть примерно так:

пространство имен WCFService {

public class MyService: IMyService

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

}

1 голос
/ 31 августа 2012

Вы абсолютно не можете (и не должны) использовать свой бизнес-уровень из своего клиентского кода.Как и в предыдущем ответном сообщении, WCF не отправляет ваш бизнес-класс клиенту.Подумайте, сколько времени это займет, чтобы отправить.Бизнес-уровень (ваша dll) должен использоваться только на сервере.Ваш WCF должен принимать только измененные / новые данные от клиента, передавать данные на бизнес-уровень и затем возвращать результаты клиенту.

...