Вы не сможете сделать это с помощью ServiceReference WCF Proxy, нет. Это просто не генерирует прокси таким образом.
Вы можете обернуть прокси в классы, которые передают методы, которые вы хотите прокси, но в противном случае ничего не делаете.
Другой вариант, если у вас есть контроль над самой службой, это разделить методы на отдельные службы. Учитывая ваше явное желание разделить проблемы, это может быть хорошим вариантом для продолжения.
Не могли бы вы объяснить немного больше во второй части вашего ответа, пожалуйста. с примером
Есть несколько способов сделать это. Этот пример неполон и не содержит важной обработки ошибок и создания прокси. Я оставлю это для вас.
public class Svc1
{
private Proxy proxy;
public void Method1(string param)
{
Proxy.Method1(param);
}
}
public class Svc2
{
private Proxy proxy;
public int Method2()
{
return Proxy.Method2();
}
}
public class MegaProxy
{
public Svc1 Class1 {get; set;}
public Svc2 Class2 {get; set;}
}
Я не хочу, чтобы программист на стороне клиента использовал много сервисов, вы знаете, просто писать все операторы использования сбивает с толку, я хочу дать ему план и просто под одним прокси
Хм ... Я вижу некоторые неудачные предположения в вашем заявлении здесь. Я предполагаю, что вы относительно новичок в WCF, и это нормально, но это означает, что вы еще не сталкивались с этой проблемой: никогда, когда-либо не используйте using
на прокси WCF. Причина в том, что метод Dispose
прокси-серверов WCF может выдавать при определенных обстоятельствах - в первую очередь, при сбое вызова службы. Это может привести к неожиданно неприятным проблемам, если вы не знаете об этой проблеме. Почти всегда лучше использовать вместо этого парадигму Open Proxy => Call Service => Close Proxy.
Тем не менее, я не думаю, что ваш клиент будет слишком отличаться для вызова отдельных служб, чем для вызова методов в отдельных полях одного прокси. Во всяком случае, отдельные службы позволят вашему клиенту лучше контролировать, когда и как создается прокси.
Если у вас есть контроль над клиентским кодом - например, если вы предоставляете прокси-сервер в виде .DLL - вы можете создать статический класс со статическими методами, которые будут создавать различные прокси для клиента.