0

dbLinq XMlMappingSource.cs には次のコードが含まれています。

    public void ReadEmptyContent(XmlReader r, string name)
    {
        if (r.IsEmptyElement)
            r.ReadStartElement(name, DbmlNamespace);
        else
        {
            r.ReadStartElement(name, DbmlNamespace);
            for (r.MoveToContent(); r.NodeType != XmlNodeType.EndElement; r.MoveToContent())
            {
                if (r.NamespaceURI != DbmlNamespace)
                    r.Skip();
                throw UnexpectedItemError(r);
            }
            r.ReadEndElement();
        }
    }

これにより、コンパイル警告が発生します

警告 CS0162 到達不能コードが検出されました

行で

            for (r.MoveToContent(); r.NodeType != XmlNodeType.EndElement; r.MoveToContent())

( https://github.com/DbLinq/dblinq2007/blob/d7a05bb452b98fd24bca5693da01ecfecd4f3d40/src/DbLinq/Data/Linq/Mapping/XmlMappingSource.cs#L176 )

for 句の 3 番目の部分r.MoveToContent() 通常のノード トラバーサル コードのように見え、for の 3 番目の部分に到達します。

これを修正するには?.NET 4 の使用

4

2 に答える 2