如何从代码接口获取通用约束作为代码类型对象
本文关键字:代码 约束 类型 对象 接口 获取 | 更新日期: 2023-09-27 18:37:01
我在Visual Studio 2010中使用DTE来检查C#类并自动生成代码。
当我遇到实现泛型接口的类时,我想将类型约束作为CodeType
对象进行访问。
例:
class ServiceProviderCollection : IList<IServiceProvider> {}
我有一个代表ServiceProviderCollection
的CodeClass
对象。我可以使用CodeClass.ImplementedInterfaces
获取IList<IServiceProvider>
的CodeInterface
对象。但是我不知道如何从那里到达代表IServiceProvider
的CodeInterface
对象。
我可以通过解析 CodeInterface.FullName 并抓取 <和> 之间的字符串来找到类型约束的名称,但这还不够。和>
如果这很重要,我正在使用 C# 来实现这一点。
鉴于Microsoft专注于Roslyn以完全取代此模型,解析FullName
可能是执行此操作的唯一方法。