Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检查BsonValue是否为空_C#_.net_Mongodb_Bson - Fatal编程技术网

C# 检查BsonValue是否为空

C# 检查BsonValue是否为空,c#,.net,mongodb,bson,C#,.net,Mongodb,Bson,以mongo集合中的以下摘录为例: {"IsBasedOnProduct" : { "CodeUV" : "09184", "Name" : null, "pricingVersion" : "B" } } 我想从这个集合中提取Name字段,并将其放入C#对象中。但是我不知道如何管理null值 这就是我在C#应用程序中所做的: if (foo.Contains("IsBasedOnProduct")) { fooToExcel.N

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

{"IsBasedOnProduct" : {
        "CodeUV" : "09184",
        "Name" : null,
        "pricingVersion" : "B"
    }
}
我想从这个集合中提取
Name
字段,并将其放入C#对象中。但是我不知道如何管理
null

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

if (foo.Contains("IsBasedOnProduct"))
{
    fooToExcel.Name = foo["IsBasedOnProduct"].AsBsonDocument.Contains("Name") ? foo["IsBasedOnProduct"]["Name"].AsString : string.Empty;
}
当然,当
Name
null
时,我抛出一个
System.ArgumentNullException

当值为
null
时,如何修复它以放置
string.Empty

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

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;
}

在此之前,您必须将BJson转换为JSON,请在条件之后进行检查。

正确还有另一个要检查的解决方案是
BsonValue
NULL
使用
IsBsonNull
属性[自MongoDB.Bson版本2.3.0以来]

这里是解决方案:

if(foo.Contains(“IsBasedOnProduct”)&&!foo[“IsBasedOnProduct”].IsBsonNull)
{
fooToExcel.Name=(foo[“IsBasedOnProduct”].AsBsonDocument.Contains(“Name”)和&!foo[“IsBasedOnProduct”][“Name”]。IsBsonNull)?
foo[“IsBasedOnProduct”][“Name”].AsString:string.Empty;
}
IsBsonNull
Property->