2

Visual Studio 2010 でDTEを使用して C# クラスを調べ、コードを自動的に生成しています。

CodeTypeジェネリック インターフェイスを実装するクラスに遭遇した場合、型制約にオブジェクトとしてアクセスしたいと考えています。

例:

class ServiceProviderCollection : IList<IServiceProvider> {}

CodeClass表すオブジェクトがありますServiceProviderCollection。を使用して のCodeInterfaceオブジェクトを取得できます。しかし、そこからを表すオブジェクトに到達する方法がわかりません。IList<IServiceProvider>CodeClass.ImplementedInterfacesCodeInterfaceIServiceProvider

CodeInterface.FullName を解析し、< と > の間の文字列を取得することで型制約の名前を見つけることができますが、これでは不十分です。

それが重要な場合、私はこれを実装するために C# を使用しています。

4

1 に答える 1

1

Microsoft がこのモデルを完全に置き換えるためにRoslynに注力していることを考えると、これを行う唯一の方法は を解析するFullNameことかもしれません。

于 2012-06-14T00:21:22.430 に答える