Неявное преобразование из void в XmlDocument - PullRequest
2 голосов
/ 18 ноября 2009

Вероятно, глупый вопрос, но я довольно плохо знаком со всем видом "get-and-set-property" программирования;

Я продолжаю получать ошибку компиляции в этой части моего кода;

private string _File = "Session.xml";

private XmlDocument XmlDoc
{
    get
    {
        XmlDocument _Doc = new XmlDocument();
        return _Doc.LoadXml(_File);
    }
}

private XmlElement XmlRoot
{
    get
    {
        return XmlDoc.DocumentElement;
    }
}

Как получилось? Я не могу объяснить это себе, поскольку я даже не вижу никаких явных преобразований ...

Ответы [ 3 ]

4 голосов
/ 18 ноября 2009

Проблема в этой строке:

return _Doc.LoadXml(_File);

Вы пытаетесь вернуть значение из метода, который имеет тип возврата void.

Попробуйте вместо этого:

private XmlDocument XmlDoc
{
    get
    {
        XmlDocument _Doc = new XmlDocument();
        _Doc.LoadXml(_File);
        return _Doc;
    }
}
2 голосов
/ 18 ноября 2009

Этот код является вашей проблемой:

return _Doc.LoadXml(_File);

Метод LoadXml имеет тип возврата void, так как метод не возвращает никакого значения, вместо этого заполняя экземпляр XmlDocument по указанному пути к файлу.

Чтобы исправить вашу проблему, просто измените вашу собственность на это:

private XmlDocument XmlDoc
{
    get
    {
        XmlDocument _Doc = new XmlDocument();
        _Doc.LoadXml(_File);
        return _Doc;
    }
}
2 голосов
/ 18 ноября 2009

_Doc.LoadXml (_file); вернуть void, а не XmlDocument. Измените свой код на:

private XmlDocument XmlDoc
{
    get
    {
        XmlDocument _Doc = new XmlDocument();
        _Doc.LoadXml(_File);
        return _Doc;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...