我有一个函数可以获取传递给它的字符串。在测试函数时,我得到了传递给它的字符串参数的空引用异常,即使字符串不为空,我也不明白为什么我会得到这个错误。我有一个屏幕截图如下对非空值的NullReference
我用虚值,同时验证在的SelectSingleNode函数的字符串参数和NEWVALUE字符串参数传递给我的功能,它们都包含值,所以我不不明白为什么它抛出一个空引用异常。为了清楚起见,该函数的目的是将值写回XML文件的节点。
UPDATE
对不起,不张贴代码
Private Sub setValue(ByVal nodeToMod As String, ByVal newValue As String)
''Test writing to xml config file
Dim dummy As String = "Config/" & nodeToMod
Dim xmlDoc As New XmlDocument
Using fs As FileStream = New FileStream(HttpContext.Current.Server.MapPath("~/XML_Config/Config.xml"), FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite)
xmlDoc.Load(fs)
Dim foo As XmlNode = xmlDoc.SelectSingleNode(dummy)
Console.WriteLine(foo.InnerXml)
fs.Seek(0, SeekOrigin.Begin)
fs.SetLength(0)
xmlDoc.Save(fs)
End Using
End Sub
这里是我与
<?xml version="1.0" encoding="utf-8"?>
<Config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Username>[email protected]</Username>
<Password>Password1</Password>
<ProductType>MyProduct</ProductType>
<DirectoryEntryPath>LDAP://myDomain</DirectoryEntryPath>
<SMTPDefaultOnly>True</SMTPDefaultOnly>
<Logo>myLogo.gif</Logo>
</Config>
是的,SlectSingleNode函数没有返回值工作的XML文件。我刚开始使用XPath,这在我上周使用时似乎很有用。我不知道为什么它现在停止工作。
UPDATE2:
明白了,愚蠢的错误。我曾在nodeToMod Set方法
Set(ByVal value As String)
setValue("UserName", value.ToString)
_userName = value
End Set
您可能希望向我们展示了更多的代码。如果它给出了空的异常,那么在赋值为innertext时,“newValue”肯定是空的。 – loxxy 2010-09-27 17:10:57
@loxxy,'newValue'没有在该行被取消引用。它不能成为NRE的原因。 – 2010-09-27 17:12:54
@kirk,这个问题已经被更多的信息编辑。解除引用并不明显。 – loxxy 2010-09-28 11:10:55