Я получаю исключение SerializationException для перечисления при вызове из одного домена приложений в другой:
System.Runtime.Serialization.SerializationException:
Тип не разрешен для члена
'Dummy.MyEnum, Dummy, версия = 1.0.0.0,
Культура = нейтральная, PublicKeyToken = ноль '.
Пример кода:
public enum MyEnum
{
A = 0,
B = 1,
C = 2,
}
public class FooBar : MarshalByRefObject
{
public void Test1(MyEnum dummy)
{
}
public void Test2(object dummy)
{
}
}
Этот вызов вызовет исключение:
getFooBarInOtherAppDomain().Test1(MyEnum.A);
При использовании любого другого сериализуемого типа это успешно выполняется:
getFooBarInOtherAppDomain().Test2(0);
Caller, callee и enum определены в одной сборке.
Что означает .Net с "Тип не разрешен" и почему выдается исключение? Разве перечисления не сериализуются по умолчанию?