aop - 拦截 RavenDb 中的对象创建

标签 aop json.net ravendb

我正在尝试在从 RavenDB 加载的对象上运行一些代码,并且我需要在对象加载其属性值后立即执行此操作。

我尝试使用 CustomCreationConverter 拦截反序列化过程并覆盖 ReadJson,但此时我可以访问的对象已设置所有属性,除了我需要的属性:Id。我可以在其他地方插入管道来执行此操作吗?

最佳答案

您看不到 ID 的原因是它不是文档的一部分,而是以 @id 形式存在于元数据中。

如果您想拦截客户端,您可以注册一个自定义转换监听器。创建一个实现 IDocumentConversionListener 的类,并将其注册到 documentStore.RegisterListener()。在 DocumentToEntity 方法中,您可以运行自定义逻辑。一般来说,缺少有关监听器的文档,但另一个主题也使用它们: http://ravendb.net/kb/16/using-optimistic-concurrency-in-real-world-scenarios

另一个选择是添加一个在服务器端拦截的包。为此,您可以使用 Read Trigger .

关于aop - 拦截 RavenDb 中的对象创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13532730/

相关文章:

c# - 如何从 json 对象字符串 C# 创建 json 架构

c# - 使用 C# 和 JSON.net 读取 JSON 文件

c# - 我应该在 RavenDB 上使用 LINQ 查询吗?

RavenDb和MultiTenancy

java - 什么是简单英语的AOP、依赖注入(inject)和控制反转

java - Spring AOP抛出后继续迭代

c# - 使用 JSON.net 将 JSON 解析为匿名对象[]

RavenDB 嵌入 Azure 网站 - 拒绝访问

java - Java AOP 的主要框架/库是什么?

java - Spring事务管理: using @Transactional vs using AOP (<aop:advisor)