我有一个包含一些对象的公共库.然后我有一个引用公共库的服务项目,并从公共库中的对象创建一些派生类型.
我希望我的服务将派生类型序列化为公共库中定义的基类型.
我不能在公共库中的对象上使用KnownTypes,因为我不希望公共库引用服务程序集.
那么如何将wcf序列化派生类型作为其基类型?
我希望我能做点像......
[DataContract(SerializeAsType = typeof(BaseType))] public class DerivedType:BaseType {}
有可能这样吗?
我正在使用IErrorHandler在WCF中进行异常处理,现在我想记录异常,以及堆栈跟踪和导致异常的用户.
我能看到导致异常的用户的唯一方法是:
OperationContext.Current.IncomingMessageProperties.Security.ServiceSecurityContext.PrimaryIdentity
...但这似乎只在ProvideFault内部工作,而不是在HandleError内部.有没有办法让用户进入HandleError?我想使用HandleError而不是ProvideFault,因为它在后台线程上被调用并且用于错误记录,对吧?