FaultException <t>将自跟踪实体作为异常的属性?</t>

时间:2012-05-12 11:23:21

标签: .net wcf exception-handling self-tracking-entities

我有一个WCF服务,其中包含一个异步方法updateUsers。用户名是唯一的,因此当我保存更改时,如果存在分配给新用户的用户名,则会收到UpdateException。

我创建一个自定义异常,UniqueKeyUsersException,它有三个属性,一个带有ID的int64和两个字符串,一个用于用户名,另一个用于密码。目前是数据库表中的所有字段。

此异常被装饰为Serializable并实现ISerializable接口。有了这个,我可以将信息发送给客户。如果我没有实现此接口,则客户端会收到异常,但所有属性都为null。

一切正常,客户端使用存在的用户名信息到达FaultException。

但是,我想在类型为Users的异常中只使用一个属性,这是我在外部库中的自我跟踪实体。我们的想法是向客户端发送具有数据库中存在的寄存器的实体,因此用户可以决定查看现有用户的信息。这样,用户就可以保存所需的新查询。如果我要用我的三个属性发送异常,我将不得不创建一个新对象Users并将异常信息转换为Users实体。

我的问题是,当我在抛出FaultException时添加类型为Users(STE)的属性时,它会失败,导致服务崩溃。我认为这可能是出于序列化的原因,也许是在ISerialize的实现中需要添加STE的序列化。

但这将是一项很大的工作,因为STE不仅拥有数据库的信息,还拥有实体和其他属性的跟踪。

所以我的问题是,是否存在使用STE作为异常属性的任何方法,或者我只能使用基本类型?

感谢。 Daimroc。

0 个答案:

没有答案