gpt4 book ai didi

c# - 将泛型类型定义字符串从 C# 样式转换为 CLR 样式

转载 作者:行者123 更新时间:2023-11-30 14:42:41 26 4
gpt4 key购买 nike

我想转换一个 C# 风格的泛型类型 string,比如:

"System.Dictionary<System.String, System.String>"

与其 CLR 等效:

"System.Dictionary`1[System.String, System.String]"

然后返回。有没有一种简单的方法可以做到这一点,还是我必须求助于字符串操作?

编辑:

我只有 C#/VB/等格式的字符串表示。我手边没有 Type 对象或类似的东西。另一个问题是:如何从 "System.Dictionary<System.String, System.String>" 这样的字符串表示中获取 Type 对象(之后我可以获得类型对象的全名)。

编辑#2:

理由:我正在使用 CodeDom 动态创建对象.我生成 CodeDom 的输入可能包含 C# 中的类型(或任何其他专有格式,如 VB.NET),但我必须在 CodeTypeReference 中使用它们, 它只接受 CLR 样式格式。

最佳答案

对于从 .NET 到 C# 的方向,我看不到一个简单的方法;您可能必须自己实际解析类型。

反之,这很简单:

public static string DotNetToCSharp(string tyName) {
var provider = new Microsoft.CSharp.CSharpCodeProvider();
return provider.GetTypeOutput(new System.CodeDom.CodeTypeReference(tyName));
}

关于c# - 将泛型类型定义字符串从 C# 样式转换为 CLR 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2925721/

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