プロパティを次のように宣言したいと思います。
IList<BaseNode and IComplexType> ComplexTypes { get; }
リスト内のすべての要素はBaseNodeを継承し、IComplexTypeを実装します。これを行う方法はありますか?リスト内のノードはすべてBaseNodeのサブクラスであるため、クラスBaseNodeComplexTypeを作成することはできません。
更新:私はこれを完全に説明するために考えていませんでした。XmlNodeなどのサブクラスがあります。XmlNodeはBaseNodeから継承します。XmlNodeを継承し、IComplexTypeを実装するXmlComplexNodeもあります。しかし、XmlNodeはIComplexTypeを継承しません(そして、場所で「obj is IComplexType」を使用するので、継承したくありません。これを最初に追加しなかったことをお詫びします。