Скажем, у вас есть DLL, в которой есть пара дюжин методов, и вы хотите предоставить только 6 из них.
Вы разрабатываете службу WCF, которая имеет шесть методов, и реализацию ссылок на службы.DLL.
В вашей реализации сервиса может быть что-то вроде этого:
public class MyService : IService
{
MyDll myDll = new MyDll();
public void Method1()
{
myDll.Method1();
}
public string Method2(int someValue)
{
return myDll.Method2(someValue);
}
// and so on
}
Интерфейс (IMyService) может выглядеть примерно так:
[ServiceContract]
public interface IMyService
{
[OperationContract]
void Method1();
[OperationContract]
string Method2(int someValue);
// and so on
}
Основная идея заключается в том, что служба WCF действует как обертка вокруг базовой библиотеки DLL и предоставляет только те методы / классы, которые указаны в интерфейсе.
Когда вы генерируете прокси через SvcUtil, вы увидите только то, что указано в сервисе, а не все в базовой DLL - фактически, вы не должны видеть ничего из базовой DLL, потому что она обернутауслуга.