System.Web.SiteMapNode を独自の SiteMapNode クラスに変換しようとしています (以下を参照)。
public class SiteMapNode {
public virtual SiteMapNode Parent { get; set; }
public virtual string Title { get; set; }
public virtual IList<SiteMapNode> Children { get; set; }
public SiteMapNode(System.Web.SiteMapNode node) {
Parent = node.ParentNode != null ? new SiteMapNode(node.ParentNode) : null;
Title = node.Title;
Children = node.ChildNodes.Cast<System.Web.SiteMapNode>().Select(n => new SiteMapNode(n)).ToList();
}
}
今、私は言うことができることを望んでいました:
var node = new MyApp.SiteMapNode(System.Web.CurrentNode);
ただし、コンストラクターが Children を設定し、各子に対して SiteMapNode クラスのインスタンスを作成するという問題があります。これで、子を設定する親が設定されます...おそらく問題がわかるでしょう。これにより、無限ループが発生します。
これを解決する方法がよくわかりません。アドバイスをいただければ幸いです。ありがとう