如何保持对象的独特性

Vis*_*hnu 2 c#-4.0

我在Common.DLL中有一个静态DataTable(带有80k记录),而Common.DLL由10个Windows服务引用.因此,我不需要在内存中拥有10个DataTable副本,而是需要将其作为1个副本并将所有服务指向该数据源.这种方法可行吗?

Jon*_*eet 5

鉴于服务将至少使用不同的AppDomain,并且很可能是不同的进程,在所有这些服务之间共享相同的数据将是棘手的.

我个人建议你不要担心 - 除非每条记录实际上都很大,80K记录仍然相当小.

可能拥有第11个服务,这是唯一拥有数据的服务,然后从其他服务与该服务进行通信.但这引入了很多复杂性,收效甚微.

可能节省内存的一种方法是使用List<T>自定义类型而不是DataTable- 可能更有效,并且在代码中使用几乎肯定会更愉快.如果你真的需要 DataTable你正在做的任何事情,这没有任何帮助,但我个人试图避免......