C#解析Guid?来自XElement

时间:2014-11-13 21:10:52

标签: c# linq-to-xml guid ternary-operator

如果属性不存在,如何将可空的Guid初始化为 null

类似的东西:

this.SessionId = metadata.Root.Attribute("SessionId") == null ? null : new Guid(metadata.Root.Attribute("SessionId").Value);

使用此代码我有这个错误:

type of conditional expression cannot be determined because there is no implicit conversion between '<null>' and 'System.Guid'

最好的方法是什么?

2 个答案:

答案 0 :(得分:3)

您可以明确地将null强制转换为Guid?以帮助编译器:

this.SessionId = metadata.Root.Attribute("SessionId") == null ? (Guid?)null : new Guid(metadata.Root.Attribute("SessionId").Value);

答案 1 :(得分:0)

(object)DBNull.Value应该这样做

   this.SessionId = metadata.Root.Attribute("SessionId")== null ? (object)DBNull.Value : Guid(metadata.Root.Attribute("SessionId").Value)