Используя методы расширения для C #, как включить метод AddNode (см. Ниже) в класс ExtensionMethods для повторного использования, в отличие от необходимости помещать его в сам класс реализации (где я не мог использовать его повторно). Метод расширения AddNode должен иметь доступ к параметру List в реализации.
Я попробовал следующее, однако обнаружил, что в методе расширения AddNode он не может "видеть" список узлов, даже если этот список указан в интерфейсе ITopology, и к нему применяется метод расширения. Интерфейс ITopology.
Кажется, что некоторые классы коллекций .net generics могут связывать свои методы "add", поэтому я где-то здесь ошибочен?
public interface ITopology
{
List<INode> Nodes { get; set; }
}
public interface INode
{
List<INode> GetChildren(NodeDepthType nodeDepth);
}
public static class ExtensionMethods
{
public static bool AddNode(this ITopology topIf, INode node)
{
this.Nodes; // <== ** Can't resolve symbol Nodes **
return true;
}
}
namespace TopologyLibrary_Client
{
using Topology;
public class TopologyImp : ITopology
{
public List<INode> Nodes { get; set; }
}
}