3
是否有可能獲得所有在其中明確定義了Serializable屬性的擴展類類型?使用反射來獲取所有帶有Serializable屬性的擴展類型
[DataContract]
[KnownType("GetKnownTypes");
public abstract class BaseClass
{
public Type[] GetKnownTypes(){
return all classes which extend this class
AND explicitly have the [Serializable] attribute
}
}
public class DoNotWant : BaseClass {}
[Serializable]
public class Want : BaseClass {}
所以GetKnownTypes將返回類「希望」,因爲它擴展BaseClass的,並明確了Serializable接口,同時DoNotWant屬性不包含屬性序列化的明確
謝謝
編輯:: 我不相信IsSerializable是準確依賴的,因爲它似乎總是如此(我不確定這是因爲BaseClass是否可序列化)
該場景令人困惑,因爲WCF/DataContract不關心** [Serializable],所以我們不希望看到它。此外,編譯器細節[Serializable]映射到支持IsSerializable的相同CLI標誌(它實際上並未實現爲屬性...否:我的意思是) - 但是,它可能因繼承而異。但是,如果所有類型都在同一個程序集中,那麼它應該很容易。 – 2012-02-14 17:30:10