问题标签 [opennetcf.ioc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1486 浏览

c# - DI:处理 IDisposable 对象的生命周期

所以我正在研究我的 DI/IoC 容器OpenNETCF.IoC,并且我有一个(合理的)功能请求,为容器集合中的 IDisposable 项目添加某种形式的生命周期管理。

我目前的想法是,由于我无法查询对象以查看它是否已被释放,并且我无法获取它何时被释放的事件,因此我必须为开发人员想要的对象创建某种形式的包装器要管理的框架。

现在可以使用 AddNew 添加对象(为简单起见,我们假设只有一个重载并且没有 Add):

我正在考虑添加一种新方法(其中一组,但你明白了):

DisposableWrappedObject 如下所示:

现在,当通过 AddNewDIsposable 将项目添加到容器时,还会添加一个事件处理程序,以便当它被 Disposed(通过包装器)时,框架会将其从基础集合中删除。

我实际上已经实现了这个并且它通过了单元测试,但我正在寻找关于它可能被破坏的地方的意见,或者它可能如何使它对消费开发者更加“友好”。

编辑 1

由于有一个关于如何使用 Disposing 事件的问题,这里有一些代码(修剪到什么是重要的):

0 投票
2 回答
868 浏览

c# - OpenNETCF.Stopwatch -> 只改变刻度,不经过

我一直在试图找出一个我认为与线程相关的错误,但我认为我使用 OpenNETCF 的秒表的方式存在问题。我在我的应用程序中使用OpenNETCF.IoC,但为了简单起见,我将以下代码直接移动到视图中:

长话短说,在调试器中查看秒表,唯一得到更新的值是 ElapsedTicks、mElapsed、mStartPerfCount。其他一切始终为零。这是预期的行为吗?我是否需要调用其他方法让秒表计算 Elapsed 结构?(注:秒表.ElapsedMilliseconds 也为零)

0 投票
2 回答
586 浏览

.net - OpenNetCF.IOC 事件订阅未触发

我正在使用 OpenNetCF IOC 框架开发一个 Vb.net .Net 3.5 PDA 应用程序。我已经设置了事件来处理通过智能部件的导航,但是当我引发事件时,EventSubscription 不会触发。

我确信我错过了一些简单的东西,但会很感激这样的建议。

0 投票
1 回答
347 浏览

windows-mobile - OpenNetCF.IoC 无法在 SmartClientApplication 中启动

我正在使用OpenNetCF 的 IoC 框架,我的 Program 类中的代码如下所示:

我已将 OpenNETCF 复制到我的解决方案中,并且我期待在调用 Program().Start() 时它会跳转到此处的 start 方法,因此我在其上设置了一个断点:

奇怪的是它从来没有达到断点。

我觉得这很奇怪,所以我在 Program 中单击以导航到从继承引用到 SmartClientApplication 的定义。

这打开了一个与我期望的完全不同的文件,看起来像:

同名但内容似乎不包含任何实现。当我看到它的位置时,它类似于:

C:\Users\myusername\AppData\Local\Temp\7212$OpenNETCF.IoC.UI.dll$v2.0.50727\OpenNETCF.IoC.UI.SmartClientApplication.cs

所以这就解释了为什么它没有达到断点,但我想知道的是为什么它甚至在查看这个疯狂的文件而不是它应该是的文件。

0 投票
1 回答
284 浏览

.net - OpenNETCF.IoC.UI SmartPart 创建失败

我正在创建一个 Windows Mobile 应用程序,并且在使用EventPublication.

我的订阅位于容器的主目录上,而发布位于从 OpenNETCF.IoC.UI.SmartPart 继承的对象上

应用程序启动

订阅 MainContiner 表单

出版商

问题

如果我尝试编写这个聪明的部分,我在OpenNETCF.IoC.ObjectFactory.AddCollectionEventHandlers<TKey, TItem>方法中得到 NullReferenceException 就 source.EventInfo.AddEventHandler(instance, intermediate);行了。

删除EventPublication作品没有任何问题。

堆栈跟踪

0 投票
1 回答
255 浏览

winforms - 将 Windows 窗体重构为 MVP

我正在从事的项目是一个基于移动 .NET CF 的应用程序。我必须在其中实现 MVP 模式。我现在在其中使用 OpenNETCF.IoC 库和服务。

我必须将 Windows 窗体代码重构为 SmartParts。

我在实现导航场景时遇到问题:

在 Windows 窗体逻辑中,这是通过变量实现的:

如何用 MVP 术语重新实现这个逻辑?

0 投票
1 回答
75 浏览

c# - Opennetcf.IOC 事件订阅和继承

Class1 具有属性 [EventPublication("event1")] 的事件。Class2 和 Class3 继承自 Class1。

我想使用 [EventSubscription] 将 Method1 订阅到来自 Class2 的对象中的事件,并将 Method2 订阅到来自 Class3 的对象中的事件。

但在派生类中,事件的 EventPublication 名称相同。那么如何区分派生类中的事件呢?可能吗?

编辑: 也许我误解了关于 IoC 的一些明显的事情,或者我试图使简单的解决方案复杂化......我会尝试澄清我的问题。这是一些代码:

另一个类中有 action1() 和 action2() 方法。我想在调用 Presenter1 Run() 方法的实例时触发 action1(),并在调用 Presenter2 Run() 方法的实例时触发 action2()。但是调用 Run() 方法会触发 action1 和 action2 方法。