Тип не может быть сериализован, потому что он не общедоступен?

У меня есть открытый класс, который некорректно сериализуется. При попытке выдается следующее исключение:

Тип контракта данных MyProject.MyClass не может быть сериализован, поскольку он не является общедоступным. Открытие типа исправит эту ошибку. Как вариант, вы можете сделать его внутренним, и используйте атрибут InternalsVisibleToAttribute в вашей сборке, чтобы включить сериализацию внутренних элементов - см. документацию для получения дополнительных сведений. Имейте в виду, что это имеет определенные последствия для безопасности.

Мой класс является общедоступным:

[DataContract]
public class MyClass
{
    [DataMember]
    public string Name { get; set; }

    [DataMember]
    private int Count;

    public MyClass()
    {
        Name = string.Empty;
        Count = 0;
    }
}

Почему я получаю это исключение, когда класс явно общедоступен?

5
задан shytikov 4 June 2015 в 08:50
поделиться