【发布时间】:2009-08-28 11:42:33
【问题描述】:
我正在尝试编写一个负责持久化应用程序选项的类。由于需要保留选项,因此我发送的值必须是可序列化的。
一开始我以为我可以用这样的签名写一个方法:
Public Sub SaveOption(Of T As ISerializable)(ByVal id As String, ByVal value As T)
或者如果你更喜欢 C#:
public void SaveOption<T>(string id, T value) where T : ISerializable
原则上这没问题,但是具有<Serializable> 属性的类型呢?最值得注意的例子是 System.String,它没有实现ISerializable,但显然它是我应该能够保存的类型。
那么,有没有一种方法可以在编译时根据它们的属性限制方法中允许哪些类型?
【问题讨论】: