1

我正在尝试写入 .xml 文件并收到错误对象引用未设置为对象的实例。在第 49 行(CreateNode)上。这是我尝试过的代码,但没有运气。

private void CreateNode(string Port, string BaudRate, string DataBits, string Parity,_
string StopBits, string Handshaking, XmlTextWriter writer)
{
    //Writing to the .xml file. This will make the program be able to load the properties last used.
    writer.WriteStartElement("ApplicationProperties");
    writer.WriteStartElement("Port");
    writer.WriteString(Port);
    writer.WriteEndElement();
    writer.WriteStartElement("BaudRate");
    writer.WriteString(BaudRate);
    writer.WriteEndElement();
    writer.WriteStartElement("DataBits");
    writer.WriteString(DataBits);
    writer.WriteEndElement();
    writer.WriteStartElement("Parity");
    writer.WriteString(Parity);
    writer.WriteEndElement();
    writer.WriteStartElement("StopBits");
    writer.WriteString(StopBits);
    writer.WriteEndElement();
    writer.WriteStartElement("Handshaking");
    writer.WriteString(Handshaking);
    writer.WriteEndElement();
    writer.WriteEndElement();
}

private void SaveProperties()
{
    //CreateNode(everything being referenced. Put text boxes, and drop down boxes here.
    XmlTextWriter writer = new XmlTextWriter(@"C:\ForteSenderv2.0\Properties.xml", System.Text.Encoding.UTF8);
    writer.WriteStartDocument(true);

    //Making the code indeted by 2 characters.
    writer.Formatting = Formatting.Indented;
    writer.Indentation = 2;

    //Making the start element "Table".
    writer.WriteStartElement("Forte_Data_Gatherer_Application");
    //Calling the rst of the .xml file to write.
    CreateNode(ApplicationPort.PortName, ApplicationPort.BaudRate.ToString(), ApplicationPort.DataBits.ToString(), ApplicationPort.Parity.ToString(), ApplicationPort.StopBits.ToString(), ApplicationPort.Handshake.ToString(), writer);
    writer.WriteEndElement();
    writer.WriteEndDocument();
    writer.Close();
}
4

1 回答 1

2
Dim mySerialPort as serialPort

mySerialPort.PortName = SetPortName(mySerialPort.ApplicationPort);

MSDN 是一个很好的资源


编辑

error: Object reference not set to an instance of an object. on line 49 (CreateNode).

private void CreateNode(string Port, string BaudRate, string DataBits, string Parity,_
string StopBits, string Handshaking, XmlTextWriter writer)

private void blabla (PortName as string, BaudRate as string, DataBits as string,_
Parity as string, Handshaking as string)

我看不出你怎么会有 XmlTextwriter 在那里。就个人而言,我还没有见过这样的事情。我可以看到你的努力,非常感谢你的工作和你想要实现的目标,我真的认为你把事情复杂化了。编码的诀窍(不是我是专家)是采用最简单的方法来创建您需要的功能。尽可能短,只要需要。

我认为您需要重新考虑您要实现的目标的算法,我是以最简单的方式解决这个问题,还是对这个项目造成不必要的复杂化?

在创建 subs、functions等时,您不需要将所有变量都填充到顶部的声明中。这就是身体的用途。

我敦促您使用 MSDN 并多研究一下,它会变得更容易。这是MSDN .Net Framework 类库的链接- 它涵盖了所有内容 :)

于 2013-07-30T14:58:56.247 回答