给定通过反射找到的 .NET 类型对象,是否可以将此类型漂亮地打印或反编译为 C# 声明,同时考虑到 C# 类型别名等?
例如,
Int32 -> int
String -> string
Nullable<Int32> -> int?
List<au.net.ExampleObject> -> List<ExampleObject>
我希望能够打印出接近源代码中最初编写的方法。
如果.NET框架中没有任何东西,是否有第三方库?我可能会看看ILSpy http://wiki.sharpdevelop.net/ilspy.ashx.
See this https://stackoverflow.com/questions/2459577/generating-code-is-there-an-easy-way-to-get-a-proper-string-representation-of/2459614#2459614 answer.
Example:
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>"
它将帮助您int
and string
-类似的东西,以及泛型,但是你必须解决Nullable<T> -> T?
and using
是你自己。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)