类型T的泛型,其中T具有特定的属性例如:publicstaticXmlDocumentSerializeObjectToXml(Tobj){//...}我只想序列化具有可序列化和/或DataContract属性的类:[Serializable][DataContract(Name="viewModel",Namespace="ns")]internalclassViewModel{//...}我不敢。存在三种类型的约束:派生类型、构造函数类型和引用/值类型。我相信,您应该检查方法主体中的属性,如果可序列化对象不合格,则调用另一个方法来处理它。也许你可以通过创建一个带有Serializable属性的基类来间接做到这一点,并向你的泛型类添加一个约束,以便类型参数应该从该基类继承:[Serializable]publicclassMyBase{}publicstaticXmlDocumentSerializeToXml(Tobj)whereT:MyBase{}悄悄地,我不这么认为。但是你可以在运行时检查类型T:以上是C#学习教程:类型T的泛型,其中T具有特定的属性。多多注意——varisDataContract=typeof(T).GetCustomAttributes(typeof(DataContractAttribute),true).Any();if(!isDataContract)thrownewInvalidOperationException("您只能序列化标记为数据协定的类。");//...继续连载本文来自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
