2
我有一个属性的接口:强制接口属性的返回值是可序列化
interface IFoo
{
object Bar { get; }
}
有没有一种方法来指示实现类,即中Bar
返回值必须是一个类那是可序列化的(用SerializableAttribute标记的)?
我有一个属性的接口:强制接口属性的返回值是可序列化
interface IFoo
{
object Bar { get; }
}
有没有一种方法来指示实现类,即中Bar
返回值必须是一个类那是可序列化的(用SerializableAttribute标记的)?
不,没有办法强制接口属性的返回类型标记为SerializableAttribute
。
你可以考虑使用ISerializable
,尽管它当然不一样,并且会强制类型实现接口,而不是仅仅用属性标记。
interface IFoo
{
ISerializable Bar { get; }
}
似乎有一点研究,你不能把基于属性的编译时间约束。如果你的课程实现了ISerializable,那将允许你做你想做的事情。 – Hammerstein 2012-01-02 13:36:43
我不认为这是可能的,因为大多数属性都是在运行时进行评估的(实际上,它看起来像编译时也使用了Serializable属性,但我仍然不认为有一种方法可以将类型约束到它)。你可以使用ISerializable接口吗? – ken 2012-01-02 13:39:58