通常来说可以策略性的直接抛弃强类型解决这种问题。
C#类型不支持mixin没有必要追求那么完美。
另外就是如果是为了复用代码而继承通常是不被推荐的,因为代码复用可以通过非常多的方式,尤其是有一种代码复用叫做相似代码复用,也就是说其实本质上没啥相关性只是凑巧长得一样,通常来说Data什么的是可以不需要继承关系的,这些类型本来也应该直接从数据结构什么的生成出来……
把更多的东西(动态类型,代码生成,放弃复用等),就能权衡得出更好的解决方案。