我从 XSD 架构生成了三个类:
public partial class PathDetailsMessage {
private MessageHeader messageHeaderField;
public MessageHeader MessageHeader {
get {
return this.messageHeaderField;
}
set {
this.messageHeaderField = value;
}
}
}
public partial class MessageHeader {
private Recipient recipientField;
public Recipient Recipient {
get {
return this.recipientField;
}
set {
this.recipientField = value;
}
}
}
public partial class Recipient {
private string valueField;
public string Value {
get {
return this.valueField;
}
set {
this.valueField = value;
}
}
}
当我尝试将 id 的值(数据库中的字符)放入medusa.MessageHeader.Recipient.Value 时,出现错误(见下文):
if (dr.HasRows)
{
dr.Read();
medusa.MessageHeader.Recipient.Value = Convert.ToString(dr["id"]);
dr.Close();
}
我收到以下错误:
<块引用>System.NullReferenceException: 'Object reference not set to an instance of an object.'
PathDetailsMessage.MessageHeader.get returned null.
我使用以下 SQL 字符串:
string sqlString = "SELECT id FROM view_otf WHERE id LIKE '%079%'";
id 列在数据库中是 CHAR。
我无法找到解决此问题的方法。
你能帮我吗?
谢谢。
LE:这 3 个类位于同一个 .cs 文件中。
LE2:medusa 是从 PathDetailsMessage.cs 文件初始化的对象,是从 XSD 模式创建的类</p>
PathDetailsMessage medusa = new PathDetailsMessage();
答案 0 :(得分:1)
我们缺少 medusa
初始化代码,但您应该这样做:
medusa.MessageHeader = new MessageHeader {
Recipient = new Recipient()
};
medusa.MessageHeader.Recipient.Value = Convert.ToString(dr["id"]);
那是因为像 PathDetailsMessage
这样的类的初始化不会为 MessageHeader
属性设置任何值为 null 的值。这同样适用于 Recipient
属性。因此,通过上述初始化,您将有一些对象来存储值。