Имам някакъв .NET код за отдалечено управление, при който фабричен метод, внедрен в някакъв клас от страна на сървъра, връща интерфейси към конкретни обекти, като също се изпълнява на същия сървър. .NET отдалеченото автоматично създава проксита и ми позволява да предам интерфейсите на клиента, който след това може да ги извика директно.
Примерни интерфейси:
public interface IFactory
{
IFoo GetFoo();
}
public interface IFoo
{
void DoSomething();
}
Примерен клиентски код:
...
IFactory factory = (IFactory) System.Activator.GetObject (typeof (IFactory), url);
...
IFoo foo = factory.GetFoo (); // the server returns an interface; we get a proxy to it
foo.DoSomething ();
...
Всичко това работи чудесно. Сега обаче се опитвам да мигрирам кода си към WCF. Чудя се дали има начин да се предават интерфейси и WCF да генерира проксита в движение на клиента, както и оригиналното .NET отдалечено управление.
И не искам да връщам екземпляри на клас, тъй като не искам да излагам реални класове. И сериализирането на пълния екземпляр и изпращането му напред и назад между сървъра и клиента също не е опция. Наистина просто искам клиентът да говори със сървърния обект чрез интерфейсен указател/прокси.
Някакви идеи?