【问题标题】:How to get a function Return Type as a CodeClass2 from a method CodeElement2如何从方法 CodeElement2 中获取作为 CodeClass2 的函数返回类型
【发布时间】:2014-02-27 20:51:12
【问题描述】:

在 T4 模板中使用 EnvDTE,我可以轻松地从一个类中获取所有方法。

更进一步并循环这些方法以获取返回类型为 CodeClass2(或简称为 CodeElement2)我卡住了。

((CodeFunction2)codeElement).Type.AsFullName;

此代码可以正常获取返回类型全名,但如果我尝试这样做;

((CodeFunction2)codeElement).Type as CodeClass2;

我每次都得到一个空值,即使返回 AsFullName 有效?

我最终需要循环一个函数返回类型对象的属性,但在这一点上失败了。

【问题讨论】:

标签: c# t4 envdte


【解决方案1】:

查看文档CodeFunction2.Type 返回一个 CodeTypeRef。

所以你应该可以使用:

((CodeFunction2)codeElement).Type.CodeType as CodeClass2;

【讨论】:

  • 我在发布相同结果之前尝试过这个。这是正确的答案,马特,然而,我出错的地方是返回类型是泛型的……Doh!如果我忽略泛型,在我的情况下为 IEnumerable,一切正常。现在来弄清楚如何处理这些情况。
猜你喜欢
  • 1970-01-01
  • 2015-05-24
  • 2023-03-25
  • 2014-12-13
  • 1970-01-01
  • 2019-12-22
  • 2019-04-16
  • 2016-07-01
  • 2018-11-06
相关资源
最近更新 更多