如何从代码接口获取通用约束作为代码类型对象

本文关键字:代码 约束 类型 对象 接口 获取 | 更新日期: 2023-09-27 18:37:01

我在Visual Studio 2010中使用DTE来检查C#类并自动生成代码。

当我遇到实现泛型接口的类时,我想将类型约束作为CodeType对象进行访问。

例:

class ServiceProviderCollection : IList<IServiceProvider> {}

我有一个代表ServiceProviderCollectionCodeClass对象。我可以使用CodeClass.ImplementedInterfaces获取IList<IServiceProvider>CodeInterface对象。但是我不知道如何从那里到达代表IServiceProviderCodeInterface对象。

我可以通过解析 CodeInterface.FullName 并抓取 <和> 之间的字符串来找到类型约束的名称,但这还不够。

如果这很重要,我正在使用 C# 来实现这一点。

如何从代码接口获取通用约束作为代码类型对象

鉴于Microsoft专注于Roslyn以完全取代此模型,解析FullName可能是执行此操作的唯一方法。