我有一个班级
myfiles <- list.files("C:\\Documents\\R\\wd\\text", full.names = TRUE)
Filter(function(file) any(grepl("(Also)|(Bread)", readLines(file, warn = FALSE))),
myfiles)
以下代码用于从web api中读取数据。
public class C
{
public int Id { get; set; }
public SqlXml Range { get; set; } // System.Data.SqlTypes.SqlXml
}
以下是从Web API返回的一些示例Json文件。
List<C> cs = null;
var response = await client.GetAsync(url);
if (response.IsSuccessStatusCode)
{
cs = await response.Content.ReadAsAsync<List<C>>(); // cs[..].Range is null
}
但是,变量[{"id":0,"range":{"isNull":false,"value":"<Range>....</Range>"}},
{"id":1,"range":{"isNull":false,"value":"<Range>...</Range>"}},
{"id":2,"range":{"isNull":false,"value":"<Range>....</Range>"}}]
得到以下值。 cs
值是正确的。但是所有的Id
都得到了空值?
Range
调试器显示0, null
1, null
2, null
为cs[...].Range.IsNull
。
答案 0 :(得分:2)
System.Data.SqlTypes.SqlXml的属性是只读的。当反序列化程序尝试创建该类型的对象时,它将在尝试设置属性时失败。
创建您自己的类以保存所需的值
mongo.yml
现在应该允许public class Range {
public bool IsNull { get; set; }
public string Value { get; set; }
}
public class C {
public int Id { get; set; }
public Range Range { get; set; }
}
值正确填充