2012-01-02 4 views
2

У меня есть интерфейс со свойством:Force возвращаемого значения свойства интерфейса, чтобы сериализовать

interface IFoo 
{ 
    object Bar { get; } 
} 

Есть ли способ, чтобы инструктировать реализующий класс, что возвращаемое значение Bar должен быть классом который является сериализуемым (отмечен с помощью SerializableAttribute)?

+0

Похоже, что вы не можете установить ограничения времени компиляции на основе атрибута. Если ваш класс реализован ISerializable, это позволит вам делать то, что вы хотите сделать. – Hammerstein

+0

Я не думаю, что это возможно, так как большинство атрибутов оцениваются во время выполнения (на самом деле, похоже, что во время компиляции используется атрибут Serializable, но я все еще не думаю, что есть способ ограничить его тип). Можете ли вы использовать интерфейс ISerializable? – ken

ответ

4

Нет, нет способа принудительно вернуть тип свойства интерфейса, который будет помечен SerializableAttribute.

Вы можете использовать ISerializable, хотя это, конечно, не то же самое, и это заставит тип реализовать интерфейс, а не просто быть помеченным атрибутом.

interface IFoo 
{ 
    ISerializable Bar { get; } 
} 
Смежные вопросы