Как мне получить WCF для генерации списка или IEnumerable
прокси для реального объекта? Я делаю это в автономном приложении.
Вот что у меня есть:
public interface IRemoteControlGroup {
List<IRemoteControl> GetInstances();
}
public class RemoteControlGroupImpl : IRemoteControlGroup {
public List<IRemoteControl> GetInstances()
{
System.Console.Error.WriteLine("Called GetInstances()");
List<IRemoteControl> list = new List<IRemoteControl>();
// implementation detail: get this list of IRemoteControl objects
return list;
}
}
public interface IRemoteControl {
void Stop();
void Start();
void GetPID();
}
public class RemoteControlImpl : IRemoteControl {
// actual implementation
}
Я хочу, чтобы WCF:
- Предложить услугу
RemoteControlGroupImpl
, определенную договором на IRemoteControlGroup
.
- Дайте мне
List<IRemoteControl>
при вызове IRemoteControlGroup.GetInstances()
(на клиенте), где элементы списка являются прокси, которые реализуют IRemoteControl
(путем вызова фактических IRemoteControl
объектов хоста).
Я не хочу, чтобы WCF проталкивал реальные RemoteControlImpl
объекты по проводам; Я просто хочу выдвинуть прокси, которые реализуют IRemoteControl
. RemoteControlImpl
объекты на самом деле содержат дескрипторы локальной системы (дескрипторы окна, потому что наши приложения предоставляют только интерфейс с графическим интерфейсом) и, следовательно, не сериализуемы. Количество элементов, возвращаемых GetInstance()
, может варьироваться.
Я нашел эту статью , которая звучит как то, что я хочу. Вид. Но это не говорит мне, как сделать это в коде; просто в конфигурации. Это также не совсем описывает то, что я хочу. Точка входа для службы предоставляет прокси; но я хочу, чтобы точка входа для моей службы доставляла список прокси.