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

时间:2015-10-07 09:24:18

标签: c# wpf out-of-memory unity-container ram

我们有一个WPF应用程序,它使用Unity来解决它的依赖关系。它在不同的计算机上运行良好,但是如果我们尝试在具有2 GB RAM(英特尔计算棒)的英特尔凌动处理器的计算机上运行它,我们在使用此行初始化统一时会得到System.OutOfMemoryException:

var unityContainer = new UnityContainer();

本机在Windows 8,32位上运行。

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

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

以下是我们从系统获得的例外情况中的详细信息:

  

Problemsignatur:Problemereignisname:CLR20r3 Problemsignatur 01:   WpfApplication1.exe Problemsignatur 02:1.0.0.0 Problemsignatur 03:   5566d036 Problemsignatur 04:Microsoft.Practices.Unity Problemsignatur   05:3.5.1404.0 Problemsignatur 06:5355503f Problemsignatur 07:9f   Problemsignatur 08:b Problemsignatur 09:System.OutOfMemoryException   Betriebsystemversion:6.3.9600.2.0.0.768.101 Gebietsschema-ID:1031   Zusatzinformation 1:5861 Zusatzinformation 2:   5861822e1919d7c014bbb064c64908b2 Zusatzinformation 3:31c4   Zusatzinformation 4:31c4f0c30ca267a761c69930266146b1

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

有人有想法吗?

此致 克里斯

1 个答案:

答案 0 :(得分:0)

我认为您需要在界面和实现之间提供映射。

例如:

let myDict = ["1": "one","2": "tow","3": "three"]
let mappedDict = myDict.reduce([:]) { (result, pair) -> [String: String] in
    var result = result
    result["0" + pair.key] = pair.value.uppercased()
    return result
}