在文件中写入和读取类型值

时间:2014-03-18 08:28:14

标签: c# types io

我需要能够将类型值存储到文件中,然后将其读回到类型值中。什么是最好的方法呢?

Type type = typeof(SomeClass);
binaryWriter.Write?(type);

2 个答案:

答案 0 :(得分:8)

我会存储assembly-qualified name,假设程序集将在稍后出现:

binaryWriter.Write(type.AssemblyQualifiedName);
...
string typeName = binaryReader.ReadString();
Type type = Type.GetType(typeName);

如果您已经知道该类型将使用哪个程序集,则可以使用full name(即名称空间和类型名称,但不能使用程序集)。然后稍后使用Assembly.GetType(string)

答案 1 :(得分:0)

您也可以使用BinaryFormatter class:

Type t = typeof (SomeClass);

BinaryFormatter serializer = new BinaryFormatter();
using (var stream = File.OpenWrite(filePath))
{
    serializer.Serialize(stream, t);
}

var obj = (Type)serializer.Deserialize(File.OpenRead(filePath));