.net 用于序列化/反序列化一组标志的内置类
我需要在字符串中存储一个标志数组。我正在考虑使用BitArray,但注意到没有内置的方法来写入/读取char[]或int[]或其他内容。我可以很容易地编写这段代码,但如果有内置方法,我更愿意使用内置方法.net 用于序列化/反序列化一组标志的内置类,.net,.net,我需要在字符串中存储一个标志数组。我正在考虑使用BitArray,但注意到没有内置的方法来写入/读取char[]或int[]或其他内容。我可以很容易地编写这段代码,但如果有内置方法,我更愿意使用内置方法 那么是否有内置的.NET方法可以处理此问题?如果您的标志表示为已定义的枚举,则只需将其强制转换为枚举支持的整数类型之一(int、long等)。然后,可以使用以下命令从枚举的值表示形式反序列化枚举: // define a Flags enumeration... [Flags] enum MyE
那么是否有内置的.NET方法可以处理此问题?如果您的标志表示为已定义的枚举,则只需将其强制转换为枚举支持的整数类型之一(int、long等)。然后,可以使用以下命令从枚举的值表示形式反序列化枚举:
// define a Flags enumeration...
[Flags] enum MyEnum { First = 1, Second = 2, Third = 4, };
MyEnum originalValue = MyEnum.First | MyEnum.Second;
int storedValue = (int)originalValue;
// value serialized into storage somewhere...
// later on ...
// deserialized however you need...
int restoredValue = ReadValueFromDataStore();
// convert back into a typesafe enum...
MyEnum recoveredValue = Enum.Parse( typeof(MyEnum), restoredValue );
该类具有一些此功能。不支持Int32[],您可以使用接受int[]进行初始化,以及。当前的CopyTo实现支持根据msdn写入布尔值[]、字节[]和Int32[]。与您的问题相关的代码片段可能有助于更好地回答您的问题。实际上,可以使用originalValue.ToString()Parse来序列化和反序列化该值-不需要中间int。是否有需要中间int的原因?