Все,AppDomain CreateInstanceAndUnwrap: Тип не помечен как сериализуемая
я получаю необъяснимые ошибки при вызове CreateInstanceAndUnwrap на новое AppDomain я создал. Полный текст ошибки:
Тип 'System.Net.Http.HttpRequestMessage' в сборке 'System.Net.Http, Version = 4.0.0.0, культура = нейтральной, PublicKeyToken = b03f5f7f11d50a3a' не отмечено как сериализуемый.
Детский appdomain создается в веб-приложении API и тип, который я пытаюсь создать прокси-сервер, полученный из MarshalByRefObject.
Узел, в котором этот тип определен, не имеет ссылки на System.Net.Http или System.Web - поэтому я не понимаю, почему сериализуемость HttpRequestMessage имеет какое-либо отношение.
Я предполагаю, что он пытается скопировать некоторые контекстные данные из родительского AppDomain в дочерний, но, возможно, кто-то здесь может пролить свет на то, что происходит?
Вот соответствующий код:
var appDomain = AppDomain.CreateDomain("AName", null, AppDomain.CurrentDomain.SetupInformation);
SomeClient client = appDomain.CreateInstanceAndUnwrap(typeof(SomeClient).Assembly.FullName, typeof(SomeClient).FullName) as SomeClient;
типа «SomeClient» и его родительский узел не имеет каких-либо ссылки на веб/system.net.http.
Пожалуйста, покажите нам код строки или даже больше строк, которые трудно вычесть без более широкого контекста. – profesor79
Код, который использует HttpRequestMessage, должен строго выполняться в AppDomain, вы не можете выставлять его в свой производный класс MBRO через аргумент public property или method , Должно быть довольно сложно в веб-приложении И дорого. –
Спасибо - добавлен образец кода. Я не пытаюсь маршалировать HTTP-запрос в доменах приложений, на самом деле это то, чего я пытаюсь избежать. – booler