检查 BsonValue 是否不为 null

Xav*_* W. 2 .net c# mongodb bson

以 mongo 集合中的以下摘录为例:

{"IsBasedOnProduct" : {
        "CodeUV" : "09184",
        "Name" : null,
        "pricingVersion" : "B"
    }
}
Run Code Online (Sandbox Code Playgroud)

我想Name从这个集合中提取字段并将其放入 C# 对象中。但我不知道如何管理null价值。

这就是我在 C# 应用程序中所做的事情:

if (foo.Contains("IsBasedOnProduct"))
{
    fooToExcel.Name = foo["IsBasedOnProduct"].AsBsonDocument.Contains("Name") ? foo["IsBasedOnProduct"]["Name"].AsString : string.Empty;
}
Run Code Online (Sandbox Code Playgroud)

当然,当Nameis时null,我会抛出一个System.ArgumentNullException How can I fix it以便string.Empty在值 is 时放置null

Xav*_* W. 7

使用以下代码快照修复它:

if (foo.Contains("IsBasedOnProduct") && foo["IsBasedOnProduct"].BsonType != BsonType.Null)
{
    fooToExcel.Name = foo["IsBasedOnProduct"].AsBsonDocument.Contains("Name")&& foo["IsBasedOnProduct"]["Name"].BsonType != BsonType.Null ? 
                        foo["IsBasedOnProduct"]["Name"].AsString : string.Empty;
}
Run Code Online (Sandbox Code Playgroud)