Мой вопрос очень похож, если не реплика этого этого .Раздражающе, «ответ» не дает мне много работы, и, честно говоря, я нахожусь в тупике.
Проблема должна быть довольно очевидной.Я хочу передавать элементы WPF между процессами для подключаемой инфраструктуры приложений без необходимости использования Managed AddIn Framework.Я развертываю в среде, где кэширование файлов на диск вне моего контроля недопустимо из-за крайне ограниченных разрешений.Это обходные пути - помещение корня надстройки в appdata - но принудительная структура каталогов нежелательна, и, насколько мне известно, это не то, для чего эта папка.
Метод исключения следующий, за исключениемстроки, выделенные полужирным шрифтом:
delegate void AddUIElementDelegate(Client client, System.AddIn.Contract.INativeHandleContract handle);
private void AddUIElement(Client client, System.AddIn.Contract.INativeHandleContract handle)
{
if (this.Dispatcher.CheckAccess())
{
var element = System.AddIn.Pipeline.FrameworkElementAdapters.ContractToViewAdapter(handle);
m_UIElements[client] = element;
StackPanel_PluginUIHost.Children.Add(m_UIElements[client]);
}
else
{
this.Dispatcher.BeginInvoke(new AddUIElementDelegate(AddUIElement), client, handle);
}
}
Эксперименты, казалось, требовали, чтобы дескриптор был не маршалирован через FrameworkElementAdapters.ContractToViewAdapter () в потоке STA, следовательно, вызывается.Следует отметить, что client является обратным вызовом MarshalByRefObject и доступен в этом методе через прокси. handle также был создан удаленно с вызовом FrameworkElementAdapters.ViewToContractAdapter () и передан в этот домен приложения в качестве возвращаемого значения удаленного метода.
Исключение Irecieve is Произошло RemotingException - Отказано в доступе: невозможно удаленно вызывать непубличные или статические методы.
Любые отзывы приветствуются.