我正在尝试序列化一个对象,并想知道 XmlReader.ReadElementContentAsObject()
或 ReadElementContentAs()
是否可以使用某种类型。
我可以询问一个类型是否是 CLR 类型,以便我知道我可以将其传递给这些方法吗?
if(myType.IsCLRType) // how can I find this property?
myValue = _cReader.ReadElementContentAsObject();
最佳答案
I think I'm looking for this list: http://msdn.microsoft.com/en-us/library/xa669bew.aspx
您可能可以使用 Type.GetTypeCode(type)
完成大部分工作,但坦率地说,我希望您最好的选择更简单:
static readonly HashSet<Type> supportedTypes = new HashSet<Type>(
new[] { typeof(bool), typeof(string), typeof(Uri), typeof(byte[]), ... });
并检查supportedTypes.Contains(yourType)
。
没有神奇的预定义列表可以完全匹配您心目中的“此列表”。例如,TypeCode
不注释 byte[]
或 Uri
。
关于c# - 检查类型是否是 CLR 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15291789/