Nic*_*eld 6 c# reflection types decompiling pretty-print
给定通过反射找到的.NET类型对象,是否可以将此类型打印或反编译为C#声明,同时考虑C#类型别名等?
例如,
Int32 -> int
String -> string
Nullable<Int32> -> int?
List<au.net.ExampleObject> -> List<ExampleObject>
Run Code Online (Sandbox Code Playgroud)
我希望能够打印出与源中最初编写的方法相近的方法.
如果.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>"
Run Code Online (Sandbox Code Playgroud)
这将帮助你int和string样事情,以及仿制药,但你必须要继续进行Nullable<T> -> T?并usingŞ自己.