Csharp/C#教程:从CLR样式类型的全名获取C#样式类型引用分享


从CLR样式类型的全名获取C#样式类型引用

给定通过reflection找到的.NET类型对象,是否可以将此类型打印或反编译为C#声明,同时考虑C#类型别名等?

例如,

Int32 -> int String -> string Nullable -> int? List -> List 

我希望能够打印出与源中最初编写的方法相近的方法。

如果.NET框架中没有任何内容,是否有第三方库? 我可能会看看ILSpy 。

看到这个答案。

例:

 using System.CodeDom; using System.CodeDom.Compiler; CodeDomProvider provider = CodeDomProvider.CreateProvider("CSharp"); var typeRef = new CodeTypeReference("System.Nullable`1[System.Int32]"); string typeOutput = provider.GetTypeOutput(typeRef); // "System.Nullable" 

它将帮助你使用int和类似string的东西,以及generics,但是你必须得出Nullable -> T? 并自己using

别名被编译为它们的别名。 你永远不会知道它是否是源中的stringString ,坦率地说,我不明白为什么它会重要。

只有15个别名(+ Nullable) 。 只需在这些上使用string.Replace。

在另一篇文章中有一个类型声明的解决方案。 您可以将其扩展为轻松支持类型别名。

本文有一个方法的c#source来实现: http : //www.codeproject.com/Tips/621812/User-friendly-names-for-Types

上述就是C#学习教程:从CLR样式类型的全名获取C#样式类型引用分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1004262.html

(0)
上一篇 2021年12月29日
下一篇 2021年12月29日

精彩推荐