Я собрал несколько сборок, одна из которых - предоставить некоторые функции и некоторые события. некоторые отношения, как показано ниже:
- Сборка A - это один компонент фасада интерфейса, объявляющий все сервисные интерфейсы.
- Сборка B - это одна «пробная» реализация всех интерфейсов, объявленных Сборкой A (включаем событие)
- Сборка C является одной "Реальной" реализацией всех интерфейсов, объявленных Сборкой A (включаем событие)
И B будет отвечать за создание C во втором AppDomain и вызывать методы на C, как показано ниже:
Внутренняя сборка B:
void MethodA()
{
...
AppDomain proxyAppDomain = AppDomain.CreateDomain(..)
ProxyGenerator proxyGenerator = (ProxyGenerator)proxyAppDomain.CreateInstanceAndUnwrap(...)
proxyGenerator.UpdateProgressEvent += OnUpdatePregress(..);
proxyGenerator.MethodA();
}
Кроме того, приложение вызывающей стороны будет взаимодействовать с сборкой B, а не напрямую с C.
Теперь, если приложение вызывающего абонента имеет консольный тип, все работает хорошо, но если приложение вызывающего абонента является WPF-типом, оно завершилось неудачно и сообщило, что «SampleForm.Window1 в ... не помечено как Serializable» (SampleForm.Window1 является главным WPF окно).
Это смутило меня, кто может мне помочь в этом?
Спасибо,
Кент