Здравствуйте, Sinix, Вы писали:
S>Где-то вы пытаетесь передать в другой домен лямбду с замыканием на переменную. Такие делегаты не сериализуются.
Ну вот базовый класс:
[Serializable]
public abstract class AttributesBase
{
public delegate bool Check();
protected internal readonly Dictionary<Check, string> Errors = new Dictionary<Check, string>();
public string[] ResponseDlls;
public AttributesBase()
{
Errors.Add(() => ResponseDlls == null, "response list not initialize");
Errors.Add(() => ResponseDlls.Length == 0, "not response dll's");
}
// ...
}
Если наследника создавать первым его (наследника) конструктором, то все прекрасно передается...
Фактически в другом домене делегат и Dictionary не используются
Другие наследники этого класса тоже передаются без ошибок, правда, по ссылке (там нужно значения возвращать)