- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我刚刚下载了动态对象框架Clay我遇到了关于 castle project 的问题版本。 Clay 使用“城堡”v2.0 的功能,而我有一个项目已经开始引用 v2.5。不用说只是为了让事情更有趣,我是“CaSTLe”和 IoC 的所有事物的完全初学者。
真正的问题是升级粘土解决方案中的引用会导致折旧方法警告。无论您是否抑制该方法,提供的单元测试都会失败,并在“InterfaceProxyBehavior”的“拦截”中的以下代码中出现“无法对空引用执行运行时绑定(bind)”异常:
var invoker = BindInvoker(invocation);
invoker(invocation);
产生运行时警告的代码在“DefaultClayActivator”的“CreateInstance”中:
//var proxyType = _builder.CreateClassProxy(baseType, options);
var proxyType = _builder.CreateClassProxyType(baseType, null, options);
如前所述,我仍然是 CaSTLe Windsor 的完全初学者,并且刚刚开始使用 IoC,所以还没有接触过 Proxy 的东西。令人沮丧的是,我什至不知道错误消息在告诉我什么,或者要求我做什么。
有没有人已经将 Clay 移植到城堡项目的 2.5 版,所以知道所需的步骤。或者任何对城堡的这一部分有经验的人都可以进一步说明错误以及我可能需要做些什么来解决它。
已更新
对于失败的功能,我仍然不是很清楚,但有机会在 caSTLe.core 中使用 v2.0(工作)和 v2.5(中断)重新访问运行它的代码。附件是调试信息工作时和中断时的两个图像。它失败的测试如下,我已经用评论指出了调用。
namespace ClaySharp.Tests {
[TestFixture]
public class BinderFallbackTests {
...
[Test]
public void TestInvokePaths() {
var dynamically = ClayActivator.CreateInstance<Alpha>(new IClayBehavior[] {
new InterfaceProxyBehavior(),
new AlphaBehavior()
});
Alpha statically = dynamically;
IAlpha interfacially = dynamically;
Assert.That(dynamically.Hello(), Is.EqualTo("World-"));
Assert.That(statically.Hello(), Is.EqualTo("World-"));
Assert.That(interfacially.Hello(), Is.EqualTo("World-")); // <- Fails on this call
Assert.That(dynamically.Foo(), Is.EqualTo("Bar-"));
Assert.That(interfacially.Foo(), Is.EqualTo("Bar-"));
Assert.Throws<RuntimeBinderException>(() => dynamically.MissingNotHandled());
}
...
}
}
这是使用v2.5的caSTLe.core抛出异常时的调试信息:
这是使用 v2.0 of caSTLe.core(有效)的调试信息,用于导致 v2.5 出现问题的同一调用/线路
最佳答案
看来我解决了这个问题。 (所有测试通过)
查看我在 codeplex 上创建的工作项以及我推送到我的 fork 的更改: http://clay.codeplex.com/SourceControl/network/Forks/remcoros/Clay
关于c# - Clay and CaSTLe 温莎 2.5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3652128/
所以我目前有一个主 DAO 类 ITrackingToolDAO,它包含我的每个业务实体的所有服务契约(Contract)。 public partial interface ITrackingToo
您好,已将以下组件注册到 CaSTLe Windsor 中: public class CommandDispatcher : IServiceCommandDispatcher { priv
我刚刚下载了动态对象框架Clay我遇到了关于 castle project 的问题版本。 Clay 使用“城堡”v2.0 的功能,而我有一个项目已经开始引用 v2.5。不用说只是为了让事情更有趣,我是
我在将 CaSTLe Windsor Controller Factory 与新的 RenderAction 方法结合使用时遇到了问题。我收到以下错误消息: Controller “MyControl
我试图让 Windsor 为每个请求提供一个实例 ISession,它应该被注入(inject)到所有存储库中 这是我的容器设置 container.AddFacility().Register(
我一直在尝试配置 Windsor 以根据正在构建的类为服务提供不同的实现: 我读过这个 http://docs.castleproject.org/Windsor.Registering-compon
我正在查看 ProDiner 示例 MVC 项目。我将 CaSTLe Windsor 引用从 2 更新为 3。 public static void RegisterAllFromAssemblies
我们在 Windsor 容器上使用 NoTrackingReleasePolicy,因为当我们在使用后不释放我们的组件时会发生内存泄漏。现在考虑以下问题。 一些一次性组件: public class
我是一名优秀的程序员,十分优秀!