添加服务引用后的不明确的System.SerializationAttribute引用

时间:2012-05-22 10:21:52

标签: c# wcf web-services

我正在向我的项目添加服务引用(到Exchange Web服务),并且我在构建时遇到了一个不明确的引用错误。 (Resharper实际上给了我一个设计时错误,VS不是)

我正在使用AutoMapper(有用的库https://github.com/AutoMapper/AutoMapper/wiki)将我的业务实体映射到DAL,编译器向我保证AutoMapper程序集和mscorlib中都存在System.SerializationAttribute。它在AutoMapper程序集中不存在,所以我想这有点像红鲱鱼......

我有点困惑 - 如果我删除服务引用,我可以使用System.SerializationAttribute装饰器没有问题。一旦我向EWS添加了一个服务引用,我就会在整个项目中为任何System.SerializationAttribute修饰器得到这个错误!这给了我一个线索,引用是在创建歧义,但在哪里?

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.450")]
[System.SerializableAttribute()] <-- ambiguous ref issue with this decorator
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/exchange/services/2006/types")]
public enum RuleValidationErrorCodeType {

我还有另一个问题,当我尝试将其添加为Web引用时,我无法进入“添加Web引用”对话框。我刚刚得到一个“无法为对话框创建控件”。有没有人见过这个?

1 个答案:

答案 0 :(得分:1)

似乎AutoMapper 2.0.0.0存在一个错误,您可以在此处看到,但使用Silverlight版本

https://github.com/AutoMapper/AutoMapper/issues/181

但是,如果你的应用程序不使用Silverlight,你应该可以避免这个问题。

您确定使用AutoMapper的“no-silverlight”dll吗?

下载AutoMapper时,您将获得2个文件夹:

  • net40的客户端
  • SL4

两者都有一个AutoMapper.dll 如果您引用net40-client,那么您应该没问题。