【发布时间】:2014-02-03 15:37:59
【问题描述】:
即使所有常识都说不,我仍然提出这个问题只是为了获得第二意见并确定。
如果我有这样的类层次结构:
public class IntermediateObjectContext : System.Data.Objects.ObjectContext
{
public static Action<string> PrintHello { get; set; }
}
public class MyDatabaseContext : IntermediateObjectContext
{
public ObjectSet<Foo> Foos
{
get { // ... }
}
}
然后从第三个,与实体框架对象无关,如果我访问 IntermediateObjectContext 类的静态成员,在这种情况下,如果我订阅该类的委托,那会以某种方式实例化一个新的 ObjectContext 吗?
class SomeClass
{
public void SomeMethod()
{
IntermediateObjectContext.PrintHello += SayHello;
}
public void SayHello(string s)
{
Debug.Print(s);
}
}
所有理由都说不,常识说不会,但我只是想确定一下。我正在尝试追踪一个内存占用对象。
如果
会发生什么如果我有这样的 SomeClass 类型的静态集合,内存情况会怎样:
public class SomeClassCollection
{
private static Collection<SomeClass> _col =
new Collection<SomeClass>();
public void Add(SomeClass c) { _col.Add(c); }
public void Remove(SomeClass c) { _col.Remove(c); }
}
然后一些代码将 SomeClass 实例添加到 SomeClassCollection,如下所示:
public SomeClassCollectionConfig
{
public static RegisterSomeClasses()
{
SomeClassCollection.Add(new SomeClass());
SomeClassCollection.Add(new DerivesClassOfSomeClass());
}
}
【问题讨论】:
标签: c# .net entity-framework garbage-collection clr