C#.NET XmlNode 在扩展方法中缺少 OwnerDocument
C#.NET XmlNode missing OwnerDocument in Extension Method
我正在尝试为 XmlNodes
创建扩展方法以添加 'foreign' XmlNode
namespace TWSTools.Xml.HelperExtensions
{
using System.Xml;
public static class XmlHelperExtensions
{
public static void AppendImportedChild<XmlNode>(this XmlNode value, XmlNode incomingNode)
{
XmlNode importNode = value.OwnerDocument.ImportNode(value, true);
value.AppendChild(importNode);
}
}
}
但是我遇到了困难。由于未知原因,我收到错误消息:
XmlNode 不包含 OwnerDocument 的定义,也找不到接受 XmlNode 类型的第一个参数的扩展方法 OwnerDocument。
在后续行中对 AppendChild 有类似的抱怨。
我正在使用 VS2105 和 .NET Framework 4.5.2。
谁能帮帮我?
扩展方法声明中不需要 <XmlNode>
:
public static void AppendImportedChild(this XmlNode value, XmlNode incomingNode)
{
XmlNode importNode = value.OwnerDocument.ImportNode(value, true);
value.AppendChild(importNode);
}
您已将方法创建为泛型方法。泛型方法具有类型参数。让我们使用命名约定重写它:
public static void AppendImportedChild<T>(this T value, T incomingNode)
{
T importNode = value.OwnerDocument.ImportNode(value, true);
value.AppendChild(importNode);
}
错误消息是说您没有将 T 限制为实现 OwnerDocument 属性 的类型。
您可以这样做,但如果您只关注 XmlNode,则根本不需要类型参数。通用方法在通用的扩展方法中很有用。
所以,写成非泛型方法就可以了:
public static void AppendImportedChild(this XmlNode value, XmlNode incomingNode)
{
XmlNode importNode = value.OwnerDocument.ImportNode(value, true);
value.AppendChild(importNode);
}
我正在尝试为 XmlNodes
创建扩展方法以添加 'foreign' XmlNode
namespace TWSTools.Xml.HelperExtensions
{
using System.Xml;
public static class XmlHelperExtensions
{
public static void AppendImportedChild<XmlNode>(this XmlNode value, XmlNode incomingNode)
{
XmlNode importNode = value.OwnerDocument.ImportNode(value, true);
value.AppendChild(importNode);
}
}
}
但是我遇到了困难。由于未知原因,我收到错误消息:
XmlNode 不包含 OwnerDocument 的定义,也找不到接受 XmlNode 类型的第一个参数的扩展方法 OwnerDocument。
在后续行中对 AppendChild 有类似的抱怨。
我正在使用 VS2105 和 .NET Framework 4.5.2。
谁能帮帮我?
扩展方法声明中不需要 <XmlNode>
:
public static void AppendImportedChild(this XmlNode value, XmlNode incomingNode)
{
XmlNode importNode = value.OwnerDocument.ImportNode(value, true);
value.AppendChild(importNode);
}
您已将方法创建为泛型方法。泛型方法具有类型参数。让我们使用命名约定重写它:
public static void AppendImportedChild<T>(this T value, T incomingNode)
{
T importNode = value.OwnerDocument.ImportNode(value, true);
value.AppendChild(importNode);
}
错误消息是说您没有将 T 限制为实现 OwnerDocument 属性 的类型。
您可以这样做,但如果您只关注 XmlNode,则根本不需要类型参数。通用方法在通用的扩展方法中很有用。
所以,写成非泛型方法就可以了:
public static void AppendImportedChild(this XmlNode value, XmlNode incomingNode)
{
XmlNode importNode = value.OwnerDocument.ImportNode(value, true);
value.AppendChild(importNode);
}