gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 21:19:29 25 4
gpt4 key购买 nike

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

例如,

Int32 -> int
String -> string
Nullable<Int32> -> int?
List<au.net.ExampleObject> -> List<ExampleObject>

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

如果.NET framework 里没有,有没有第三方库?我可能会看看 ILSpy .

最佳答案

参见 this回答。

示例:

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>"

它将帮助您intstring -类似的东西,以及泛型,但是你必须解决Nullable<T> -> T?using是你自己。

关于c# - 从 CLR 样式的类型全名获取 C# 样式的类型引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6262860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com