【问题标题】:Use unityContainer in wpf application and 2gb ram system在 wpf 应用程序和 2gb ram 系统中使用 unityContainer
【发布时间】:2016-01-04 11:14:14
【问题描述】:

我们有一个 WPF 应用程序,它使用 Unity 来解决它的依赖关系。它可以在不同的计算机上正常工作,但是如果我们尝试在具有 2 GB RAM 的 Intel Atom 处理器(Intel Compute Stick)上运行它,我们会在使用此行初始化 unity 时收到 System.OutOfMemoryException:

var unityContainer = new UnityContainer();

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

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

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

以下是我们从系统中获取的异常的详细信息:

Problemsignatur: Problemereignisname: CLR20r3 Problemsignatur 01: WpfApplication1.exe 问题签名 02:1.0.0.0 问题签名 03: 5566d036 Problemsignatur 04:Microsoft.Practices.Unity Problemsignatur 05:3.5.1404.0 问题签名 06:5355503f 问题签名 07:9f Problemsignatur 08:b Problemsignatur 09:System.OutOfMemoryException Betriebsystem版本:6.3.9600.2.0.0.768.101 Gebietsschema-ID:1031 祖萨茨信息 1: 5861 祖萨茨信息 2: 5861822e1919d7c014bbb064c64908b2 Zusatz 信息 3: 31c4 祖萨茨信息 4:31c4f0c30ca267a761c69930266146b1

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

有人有想法吗?

问候, 克里斯

【问题讨论】:

  • 你有源代码在github.com/unitycontainer/unity,你可以尝试下载它,添加到崩溃的示例应用程序中并调试它。
  • 我的计算棒上没有任何像 Visual Studio 这样的 IDE。所以我无法调试应用程序。
  • 我知道这是一个非常古老的线程,但我刚刚遇到了一个类似的问题,想知道是否找到了解决方案?

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


【解决方案1】:

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

例如:

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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-27
    • 2015-10-23
    • 1970-01-01
    • 2018-03-13
    • 1970-01-01
    • 2023-01-12
    • 2018-02-11
    • 2012-02-14
    相关资源
    最近更新 更多