问题标签 [castle-dictionaryadapter]

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 回答
384 浏览

configuration - Castle DictionaryAdapter 的字符串格式

我正在使用 Castle DictionaryAdapter 以从app.config获取应用程序设置作为接口(基于摆脱字符串(3):将您的应用程序设置提升到一个新的水平):

应用程序配置

是否可以将 DictionaryAdapter 配置为使用“yyyyMMdd-HHmm”之类的自定义字符串格式来转换存储在app.config中的值?

0 投票
2 回答
316 浏览

c# - 如何仅使用 Castle Core 2.5.2 中的 DictionaryAdapter?

我想在已经使用 Castle Core 1.2 的旧应用程序中仅使用 Castle Core 2.5.2 中的 DictionaryAdapter。除了从源代码编译 DictionaryAdapter 之外,有没有办法将这些库的公共部分分开?

0 投票
0 回答
350 浏览

c# - Castle DictionaryAdapter or JSON for reading app settings with nested dictionaries

I need to read my application settings as a dictionary like this: App1: values1, App2: values2, App3: values3, where values are having properties like Label (string) and EnvVar (dictionary < string, string >).

So far I have two options:

  1. Is it possible to use DictionaryAdapter to read these settings? I didn't find any clue in the documentation or on Google, the best I can do so far is retrieve a list of strings and parse the strings in the code, which I would like to avoid if possible.

  2. Another way would be to use a JSON deserializer, but it seems that I can't deserialize an interface, like I can with Castle DictionaryAdapter, so I need to define both the settings interface and the class that implements it. Is there any JSON library that can deserialize an interface like Castle DictionaryAdapter does?

0 投票
1 回答
147 浏览

c# - 通过传递给 OnFlushDirty 的 DictionaryAdapter 进行枚举

我正在尝试使用对象的OnFlushDirty方法Castle.ActiveRecord来实现对更改的通用审计:

Castle.ActiveRecord.Framework.DictionaryAdapter在执行时,为每个previousStatecurrentState参数传递 OnFlushDirty 。

不幸DictionaryAdapter的是不支持该GetEnumerator()方法,抛出一个NotSupportedException.

  1. 我应该期望 aDictionaryAdapter首先被传递到 OnFlushDirty 吗?和
  2. 假设我应该,我如何枚举 中的键/值对DictionaryAdapter,以便比较以前和当前的状态以进行审计?
0 投票
0 回答
885 浏览

c# - 使用 WebAPI,如何使用 CustomCreationConverter 为接口参数绑定返回 Castle DictionaryAdapter?

我正在使用 Json.NET 序列化程序使用 Microsoft WebAPI,并且正在尝试使用控制器参数绑定将 Castle DictionaryAdapter 实例化为 JSON 的反序列化对象。(这将允许我们检测某些属性是否在 JSON 中设置为 null,或者它们是否默认为 null,因为它们不在 JSON 中,而不必放弃内置的解析和绑定机制。)

但它不起作用,因为新对象在创建和传递给控制器​​之间消失了。

控制器使用接口参数声明:

我希望反序列化器实例化一个实现 IMessageModel 的 Castle DictionaryAdapter。

为此,我创建了 CustomCreationConverter 的子类,该子类由 DictionaryAdapterFactory 构造并覆盖 Create() 方法以返回动态 Castle 对象:

然后我向 HttpConfiguration 对象添加一个格式化程序,如下所示:

逐步调试调试器,我可以确认使用了 MessageModelConverter,调用了 Create(),并为实现 IMessageModel 的模型创建并返回了 Castle 代理。但是,当调用控制器时,模型参数为空。不知何故,实例化的类在转换器中的创建和控制器中的使用之间消失了。

但是,如果我将 Create 更改为使用实现 IMessageModel 的具体类,则一切正常,并且模型显示在控制器上:

或者,我可以声明一个实现 IMessageModel 并将所有调用委托给另一个接口对象的包装器,如下所示:

然后我像这样实现 Create():

这让我可以在 Castle DictionaryAdapter 中走私,而且效果也很好。模型包装器到达控制器,我可以提取字典适配器代理。

但是当我直接创建并返回 Castle DictionaryAdapter 时,控制器仍然只是得到一个空值。

知道为什么 WebAPI 讨厌 Castle DictionaryAdapter 吗?

0 投票
2 回答
270 浏览

castle - 如何告诉 dictionaryAdapter 监视来自 ConfigurationManager.AppSettings 的更改?

我使用 DictionaryAdapter 从我的 asp.net 网站的 appSettings 部分检索设置。IoC 配置在启动时完成一次,并且使用单个 Configuration.AppSettings 对象注册各种具有 getter 的不同接口:

Web.config 文件中托管的 appSettings 部分工作正常,但当我想在运行时更新某些设置时它有其缺点。因为它是 web.config 文件,所以整个应用程序被重新启动。我希望能够在运行时修改配置而不会重新启动网站作为副作用。因此,我搬到了单独的文件中:

现在,通过 ConfigurationManager.AppSettings["key"] 检索它们时会反映更改,但在通过 DictionaryAdapter 的动态接口访问时不会反映更改。

有没有办法告诉 DA 观察源代码的变化而不是缓存值?

0 投票
1 回答
276 浏览

c# - 向 Castle DictionaryAdapterFactory 接口添加方法

我正在关注网站上的教程,该教程讨论了使用Castle DictionaryAdapterFactory 和一个接口来访问应用程序 app.setting 键,而无需在整个代码中使用字符串。

它的工作方式是您定义一个接口,该接口具有您的 app.settings 的键名

然后使用 DictionaryAdapterFactory 在界面和您的 app.settings 字典之间进行编码。

现在您可以像这样访问这些值:

我的问题是,是否有可能拥有比简单吸气剂更复杂的东西。例如,我可以告诉 DictionaryAdapterFactory 对其中一个键的值使用解密方法,然后返回它而不是键值吗?

我假设这是不可能的,因为您无法在接口中定义方法,但想看看是否还有另一种我遗漏的方法。