我正在使用ServiceStack将一些对象序列化和反序列化为JSON.考虑这个例子:
public class Container
{
public Animal Animal { get; set; }
}
public class Animal
{
}
public class Dog : Animal
{
public void Speak() { Console.WriteLine("Woof!"); }
}
var container = new Container { Animal = new Dog() };
var json = JsonSerializer.SerializeToString(container);
var container2 = JsonSerializer.DeserializeFromString<Container>(json);
((Dog)container.Animal).Speak(); //Works
((Dog)container2.Animal).Speak(); //InvalidCastException
Run Code Online (Sandbox Code Playgroud)
最后一行抛出InvalidCastException,因为Animal字段被实例化为Animal类型,而不是Dog类型.有什么办法可以告诉ServiceStack保留这个特定实例属于Dog类型的信息吗?
我需要通过C或C++找到用户硬盘的簇大小.硬盘使用NTFS(虽然我很高兴知道它是如何在其他文件系统上完成的).
我想我需要的是win32 API调用的一些组合,但我不知道哪个.
例如,在Windows控制台中键入"fsutil fsinfo ntfsinfo c:"会为您提供"每个群集的字节数",这就是我所需要的.(虽然出于显而易见的原因,我不想运行该命令并解析它的输出.)