繁体   English   中英

NHibernate.IFutureValue <>进行序列化时包括.Value

NHibernate.IFutureValue<> when serialized includes .Value

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在使用NHibernate构建一个ASP.NET(2.0,不,我不能更改它)站点,并且具有自定义JSON转换器,因此我无法序列化要从客户端隐藏的属性。 这让我只返回对象,而不必担心它们的序列化值-它们始终是安全的。

不幸的是,似乎如果我使用query.FutureValue<class>()query.FutureValue<class>()序列化的对象首先是NHibernate.Impl.FutureValue<class>而不是我的实体,这意味着如果我抛出,我将得到如下所示的JSON在字典中将其返回给客户端:

{key: { Value: { /* my serialized object properties */ } }

以前,我发现我无法在ASP的JavaScriptConverter实现中使用任何接口,而只能使用常规或抽象类。 因此,返回typeof(IFutureValue<MyBaseClass>)作为受支持的类型意味着我的转换器被完全忽略了。 我可以了解MyBaseClass,因为我之前已经重构了东西,以使用抽象库而不是接口,而不是接口。

然后,我发现.Impl中的FutureValue实现是程序集的内部内容,或者是其他一些废话,这些内容只会使我的.NET体验更加痛苦。 因此,我无法使用typeof(FutureValue<MyBaseClass>)来处理所有问题,因为FutureValue仅存在于我的调试会话中。

有没有办法从程序集中删除类类型? 还是一种使ASP确信接口确实有用途的方法? 还是可能有一些我可以访问的超类可以解决整个问题?

救命! 我喜欢我的期货,它使我可以立即批量处理大量的电话!

(如果不清楚,或者您想获取更多代码,请询问!我可以发表很多内容。)

1 个回复

如果我对您的理解正确,似乎您正在将某些事情混在一起。

听起来您正在尝试序列化query.FutureValue<class>()的实例,这毫不奇怪地为您提供了一个:JSON对象,其中Value字段具有表示您的实体的JSON。

对我来说,听起来您真的只想序列化query.FutureValue<class>().Value

像这样使用NHibernate期货并没有给您带来什么好处,因此您可能会追求以下目标:

var future1 = query1.FutureValue<SomeEntity>();
var future2 = query2.FutureValue<AnotherEntity>();

var json1 = serializer.Serialize(future1.Value); //<BAM! Multi-query gets fired!
var json2 = serializer.Serialize(future2.Value);

那有意义吗?

3 序列化并发布表单时,jQuery的隐藏字段值为null

我有以下html脚本: 在某个地方,我为隐藏的输入设置了一个值: 然后,我序列化表单并将其发布在url中: 在处理此帖子的地方,我尝试使用以下命令访问隐藏的输入值: 但当我希望它具有我之前设置的值时,它显示为null(实际上为空)。 如果我像这样显式设置值: ...

8 反序列化以前在序列化时包含值的空字段

我已经阅读了许多有关可空字段反序列化的帖子,但没有遇到以下情况: 使用包含值的可空字段序列化对象(“nil”属性未添加到节点,因为它包含值)。 从xml中的可空字段中删除值(这通过客户端处理发生)。 反序列化xml。 步骤3抛出错误,因为序列化程序不会将可空字段 ...

9 当ID <0时NHibernate写值= NULL

我们想实现一个简单的规则,其中当实体的ID等于-1时,NHibernate将为数据库分配(持久)NULL。 例如,我们有一个“系统内”帐户,该帐户应作为NULL持久保存在数据库中。 如果我们尝试将-1的ID持久化到数据库,则会得到外键异常,因为该ID在外表中不存在。 我们正在将NH ...

10 NHibernate QueryOver CASE WHEN计算列值

我一直在尝试在NHibernate QueryOver中执行以下T-SQL,但是没有成功: 我试图总结所有音量,但对于MyValue=1应为正值否则为负值。 到目前为止我得到了: 但是你可以想象NHibernate不知道列Volume * -1 ,那么如何在我的CASE中进行这 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM