我有完全合格的类名,我必须使用的类型铸造。我可以用
someType=Type.GetType("TypeName").
反序列化之后,我将得到对象,必须将其输入到特定类型,即TypeName。
我试过了
obj = (someType) SXmlSerializer.Deserialize("TypeName", someData);
但这不管用。是否有任何选项可用于仅使用类名作为字符串进行类型广播?
我必须将其转换为someType,因为我必须修改属性的值,即obj.SomeProperty = "AnotherValue"
。
发布于 2016-04-07 19:22:49
我必须将其转换为someType,因为我必须修改属性的值,即obj.SomeProperty = "AnotherValue“。
但是,如果在编译时不知道类型,如何知道它具有SomeProperty
属性?
如果您想假设是这样,并将类型检查推迟到运行时,则可以使用dynamic
。
dynamic obj = SXmlSerializer.Deserialize("TypeName", someData);
那你就可以
obj.SomeProperty = "AnotherValue";
如果对象没有SomeProperty
属性,它将在运行时失败。
转换只影响方法在编译时的绑定方式。如果在编译时不知道类型,那么转换就没有价值了。
https://stackoverflow.com/questions/36484790
复制相似问题