【发布时间】:2018-02-02 01:19:09
【问题描述】:
我有以下方法声明:
public static bool SerializeObject<T>(string filename, T objectToSerialize){
我想将T 限制为使用[Serializable] 属性修饰的类型。
以下内容不起作用,因为“属性 'System.SerializableAttribute' 在此声明类型上无效。它仅在 'Class、Enum、Struct、Delegate' 声明上有效。”:
public static bool SerializeObject<T>(string filename, [Serializable] T objectToSerialize)
我了解必须为属性设置AttributeUsageAttribute(AttributeTargets.Parameter) 才能使用上述内容,而[Serializable] 属性没有此设置。
有没有办法将T 限制为标有[Serializable] 属性的类型?
【问题讨论】:
-
你能限制一个接口吗?这似乎是执行此操作的自然方式。
标签: c# generics attributes