我有一个界面
public interface ITcpSerializable<T>
{
Byte[] Serialize();
T Deserialize(Byte[] data);
}
在我的一个单独的类中,我希望公开以下属性。
public List<ITcpSerializable> RegisteredTypes { get; set; }
问题是我遇到以下错误。
使用通用类型
'ITcpSerializable'需要1种类型
论点
现在,我了解了该错误以及如何纠正该错误,但是问题是我不希望将RegisteredTypes属性限制为ITcpSerializable接口的特定类型实现。
有办法解决这个问题吗?希望我要完成的工作很明确。
编辑:好的,我已经完全塞满了我想要解释的东西。只需单击一下,我的想法就完全歪了。请查看此问题,以了解我实际上在问什么:Constrain public property to specific types in List<Type>
最佳答案
您必须将ITcpSerializable
的形式做成ITcpSerializable<T>
。然后从您的通用版本继承。
interface ITcpSerializable { }
interface ITcpSerializable<T> : ITcpSerializable { }