从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
并自己using
。
别名被编译为它们的别名。 你永远不会知道它是否是源中的string
或String
,坦率地说,我不明白为什么它会重要。
只有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