在wpf应用程序和2gb内存系统中使用unityContainer

本文关键字:unityContainer 系统 内存 wpf 应用程序 2gb | 更新日期: 2023-09-27 18:16:39

我们有一个WPF应用程序,它使用Unity来解决它的依赖关系。它在不同的计算机上运行得很好,但如果我们尝试在一台带有英特尔Atom处理器和2gb RAM(英特尔计算棒)的机器上运行它,我们就会得到一个系统。

初始化unity时出现OutOfMemoryException异常
var unityContainer = new UnityContainer();

这台机器运行在Windows 8, 32位。

我们还尝试创建一个简单的新应用程序,除了Unity之外没有任何依赖关系,除了创建UnityContainer之外什么都不做-我们总是得到异常。

我们正在使用NuGet包(3.5.1404.0)。

下面是我们从系统得到的异常的详细信息:

问题签名:问题签名:CLR20r3问题签名01:WpfApplication1.exe问题签名02:1.0.0.0问题签名03:5566d036问题签名04:Microsoft.Practices.Unity问题签名05:3.5.1404.0问题签名06:5355503f问题签名07:9f问题签名08:b问题签名09:系统。OutOfMemoryException系统版本:6.3.9600.2.0.0.768.101 Gebietsschema-ID: 1031Zusatzinformation 1:5861 Zusatzinformation 2:5861822e1919d7c014bbb064c64908b2 Zusatzinformation 3:31 . 4Zusatzinformation 4: 31c4f0c30ca267a761c69930266146b1

我们还从https://www.microsoft.com/en-us/download/details.aspx?id=38788下载了旧版本(3.0)。有了这个版本,一切都很好。

有谁有主意吗?

问候,克里斯。

在wpf应用程序和2gb内存系统中使用unityContainer

我认为您需要提供接口和实现之间的映射。

例如:

public interface IInterfaceName { }
public class InterfaceImpl : IInterfaceName { }
IUnityContainer container = new UnityContainer();
container.RegisterType<IInterfaceName,InterfaceImp(typeof(InterfaceImpl).Name);
IInterfaceName interfaceClass = container.Resolve<IInterfaceName(typeof(InterfaceImp).Name);