2013-11-07 3 views
1

Я создаю проект C# с помощью службы WCF, я использую 3-уровневую архитектуру.WCF Интерфейс и методы

Я создаю мой WCF службы, как показано ниже:

namespace MyApp.WCFService 
{ 
    [ServiceContract] 
    public interface IServiceWCF 
    { 
     [OperationContract] 
     string SayHello(string who) 
    } 
} 

namespace MyApp.WCFService 
{ 
    public class ServiceWCF : IServiceWCF 
    { 
     public string SayHello(string who) 
     { 
      return "Hello" + who + "from Web Service"; 
     } 
    } 
} 

Это прекрасно работает, но в своем решении я был еще один проект с методами.

Я хотел бы знать, можно ли сделать мой IServiceWCF интерфейс реализовывать мои методы из другого проекта, а не в WCF. Или мне нужно скопировать мои методы и вставить его в класс WCFService?

Извините за мой плохой английский, я не носитель языка!

Спасибо за вашу помощь

ответ

1

можно сделать мой IServiceWCF интерфейс реализовать свои методы из другого проекта, а не в WCF

Конечно. Добавьте ссылку на другой проект в проекте WCF, дайте классу в другом проекте реализовать интерфейс WCF и настройте службу для использования службы OtherProject.Namespace.Class как службы.

+0

Как я могу это сделать? Пример ? Руководство ? – AquaTuba

+0

Какая из трех вещей, о которых я объяснил, у вас проблемы? – CodeCaster

+0

«Пусть класс в другом проекте реализует интерфейс WCF и настраивает ваш сервис»! Можете ли вы дать мне несколько советов? – AquaTuba

0

ERM, интерфейс никогда не может implement каких-либо подробностей. Если вам нужно реализовать какую-то конкретную логику, возможно, вы захотите использовать абстрактный класс вместо этого? (или, может быть, просто обычный класс, если это имеет смысл)

Однако интерфейсы могут наследовать от других интерфейсов без каких-либо проблем. Просто убедитесь, что вы ссылаетесь на необходимые .dll и что ваши нужные интерфейсы являются общедоступными.

Смежные вопросы