r3t*_*try 5 c# asp.net service singleton
我正在构建一个托管在Windows服务中的WCF 服务.通过使用代理,ASP.Net应用程序调用WCF服务.
using (WcfServiceRef.MonitorClient proxy = new WcfServiceRef.MonitorClient())
{
//WCF Service proxy
proxy.Open();
proxy.DoSomething();
}
Run Code Online (Sandbox Code Playgroud)
此外,我有一个Singleton类DataAdapter,在这样的WCF服务中使用(大多数时候它只是将调用转发到DataAdapter,以便能够轻松地更改实际数据访问的实现):
DataAdapter.GetInstance().DoSomething();
Run Code Online (Sandbox Code Playgroud)
我的DataAdapter看起来像这样,并保存myData,它应该保持活着:
public static DataAdapter DataAdapterInstance;
private List<CustomObjects> myData;
internal static ServiceAdapter GetInstance()
{
if (DataAdapterInstance == null)
{
DataAdapterInstance = new DataAdapter();
}
return DataAdapterInstance;
}
Run Code Online (Sandbox Code Playgroud)
现在,我遇到了麻烦:(我不确定我写的所有内容是否正确)
我的DataAdapter(包含我的所有数据)什么时候"死"...所以我在这里问的是当对象实际上没有引用时,它的生命周期是什么.(我会说每当垃圾收集器运行时都会收集它) - 我认为我的方法不太好,我会很感激有关如何存储我的数据的任何建议(首选不使用数据库或外部文件)
感谢您关注我的问题!
静态引用是GC的"根"引用,因此它们将"永不"死(直到AppDomain被卸载)