У меня проблема с обновлением словаря, который является свойством объекта MarshallByRef. Мой упорядоченный объект - это объект конфигурации, который имеет некоторые базовые типы данных и вышеупомянутый словарь. Он создается на одном AppDomain и передается другому Appdomain как интерфейс.Обновление словаря в marshalled объекте
public clas FFIConfiguration : MarshalByRefObject, IUserConfig
{
public string UserName {get;set;}
public DateTime ExecutionTime {get;set;}
public Dictionary<String, String> ParametersDict { get; set; }
}
Этот объект передается в другой AppDomain, где он используется в качестве интерфейса, как это:
IUserConfig config = parameterPassedAsMarshalled;
config.ExecutionTime = DateTime.Now;
config.ParametersDict.Add("Key",Value");
config.ParametersDict["Key"] = "Some other value";
Когда я пытаюсь установить любой из Int, строки или свойства даты и времени, он работает как шарм. Но когда я добавляю что-либо в словарь, он остается неизменным.
Я могу сериализовать словарь и хранить его как строку, а затем десериализовать его позже, но я бы очень хотел этого избежать. Есть ли другое решение проблемы?
Добавить методы интерфейса для выполнения необходимых операций. – leppie
Спасибо, leppie, который сделал трюк. Я полностью забыл, что эта работа может быть выполнена и в исходном домене. –
Пожалуйста, разместите свое решение в качестве ответа для некоторого rep :) – leppie