using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication1 { public class FPWeb : IDisposable { private static FPListCollection lists=new FPListCollection(); public FPListCollection Lists { get { return lists; } set { lists = value; } } public void Dispose() { lists = null; // Or you can set the static property to call this function GC.SuppressFinalize(this); } public FPWeb() { } } public class FPListCollection { private static FPWeb parentWeb= new FPWeb(); public FPWeb ParentWeb { get { return parentWeb; } set { parentWeb = value; } } public FPListCollection() { } } class Program { static void Main(string[] args) { FPWeb web = new FPWeb(); //It's OK,static property construct only once FPWeb page = new FPWeb(); page.Lists = null; // You can set the static property if you want. } } }