我有一个界面

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 { }

10-05 23:18