gpt4 book ai didi

c# - 有没有办法通过反射获取类型的别名?

转载 作者:IT王子 更新时间:2023-10-29 04:40:01 24 4
gpt4 key购买 nike

我正在编写一个简单的代码生成应用程序来从 DB2 数据库模式构建 POCO。我知道这无关紧要,但我更喜欢使用类型别名而不是实际的系统类型名称(如果它们可用的话),即“int”而不是“Int32”。有没有一种方法可以使用反射来获取类型的别名而不是实际类型?

//Get the type name
var typeName = column.DataType.Name;

//If column.DataType is, say, Int64, I would like the resulting property generated
//in the POCO to be...

public long LongColumn { get; set; }

//rather than what I get now using the System.Reflection.MemberInfo.Name property:

public Int64 LongColumn { get; set; }

最佳答案

不 - 只需创建一个 Dictionary<Type,string>将所有类型映射到它们的别名。这是一个固定的集合,所以不难做到:

private static readonly Dictionary<Type, string> Aliases =
new Dictionary<Type, string>()
{
{ typeof(byte), "byte" },
{ typeof(sbyte), "sbyte" },
{ typeof(short), "short" },
{ typeof(ushort), "ushort" },
{ typeof(int), "int" },
{ typeof(uint), "uint" },
{ typeof(long), "long" },
{ typeof(ulong), "ulong" },
{ typeof(float), "float" },
{ typeof(double), "double" },
{ typeof(decimal), "decimal" },
{ typeof(object), "object" },
{ typeof(bool), "bool" },
{ typeof(char), "char" },
{ typeof(string), "string" },
{ typeof(void), "void" }
};

关于c# - 有没有办法通过反射获取类型的别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1362884/

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