除了喬恩的回答,您可以提供的GUID作爲一個單獨的類的字段,其中字段具有相同的名稱及其相應的枚舉值。
這可以用於填充字典快速查找後:
using System;
using System.Collections.Generic;
namespace SO2856896
{
enum DictionaryType
{
RegionType,
Nationality
}
class Consts
{
public class DictionaryTypeId
{
public static Guid RegionType = new Guid("21EC2020-3AEA-1069-A2DD-08002B30309D");
public static Guid Nationality = new Guid("21EC2020-3AEA-1069-A2DD-08002B30309E");
}
}
class Program
{
static void Main(string[] args)
{
Dictionary<DictionaryType, Guid> table = new Dictionary<DictionaryType, Guid>();
Type idType = typeof(Consts.DictionaryTypeId);
foreach (DictionaryType dicType in Enum.GetValues(
typeof(DictionaryType)))
{
System.Reflection.FieldInfo field = idType
.GetField(dicType.ToString(),
System.Reflection.BindingFlags.Static
| System.Reflection.BindingFlags.Public);
Guid guid = (Guid)field.GetValue(null);
table[dicType] = guid;
}
foreach (DictionaryType dicType in Enum.GetValues(
typeof(DictionaryType)))
{
Console.Out.WriteLine(dicType + ": " + table[dicType]);
}
}
}
}
輸出:
RegionType: 21ec2020-3aea-1069-a2dd-08002b30309d
Nationality: 21ec2020-3aea-1069-a2dd-08002b30309e
我不完全知道我會選擇我自己,但也許一個的組合喬恩的回答是一本字典,用來查看上面的指導和反思來填充它。
是的,Id屬性是一個不錯的主意,但我不能將它分配給枚舉選項:( 枚舉是在數據模型庫中,不應該與實現(Guids)結合 – 2010-05-18 11:59:16
更改代碼以反映單獨的類 – 2010-05-18 12:08:16
謝謝你你的時間和精力! – 2010-05-18 12:28:47