Maybe I'm missing something, but why not just use a common interface from a separate library that both could reference?
InterfaceLib.dll
namespace CircRefProb.Interfaces
{
public interface IParent
{
}
}
namespace CircRefProb.Interfaces
{
public interface IChild
{
}
}
ParentLib.dll
using System;
using System.Collections.Generic;
using CircRefProb.Interfaces;
namespace Parent
{
public class ParentNode: IParent
{
public List<IChild> Children { get; set; }
}
}
ChildLib.dll
using System.Collections.Generic;
using CircRefProb.Interfaces;
namespace Child
{
public class ChildNode: IChild
{
public IParent Parent {get;set;}
}
}