2012-01-02 42 views
2

我有一個屬性的接口:強制接口屬性的返回值是可序列化

interface IFoo 
{ 
    object Bar { get; } 
} 

有沒有一種方法來指示實現類,即中Bar返回值必須是一個類那是可序列化的(用SerializableAttribute標記的)?

+0

似乎有一點研究,你不能把基於屬性的編譯時間約束。如果你的課程實現了ISerializable,那將允許你做你想做的事情。 – Hammerstein 2012-01-02 13:36:43

+0

我不認爲這是可能的,因爲大多數屬性都是在運行時進行評估的(實際上,它看起來像編譯時也使用了Serializable屬性,但我仍然不認爲有一種方法可以將類型約束到它)。你可以使用ISerializable接口嗎? – ken 2012-01-02 13:39:58

回答

4

不,沒有辦法強制接口屬性的返回類型標記爲SerializableAttribute

你可以考慮使用ISerializable,儘管它當然不一樣,並且會強制類型實現接口,而不是僅僅用屬性標記。

interface IFoo 
{ 
    ISerializable Bar { get; } 
} 
相關問題