首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"ArrayOfstring“数据协定出现WCF序列化错误

"ArrayOfstring“数据协定出现WCF序列化错误
EN

Stack Overflow用户
提问于 2009-03-30 01:21:45
回答 4查看 5K关注 0票数 0

当我调用我的WCF服务时,我收到了下面提到的错误?我如何摆脱它?

尝试序列化参数http://tempuri.org/:MyWCFSvc.svc时出错。InnerException消息为“”Type“”System.String[]“”,不应具有数据协定名称“”ArrayOfstring:http://schemas.microsoft.com/2003/10/Serialization/Arrays“”。“静态地将任何未知类型添加到已知类型列表中-例如,通过使用KnownTypeAttribute属性或通过将它们添加到传递给DataContractSerializer的已知类型列表。更多详情请查看InnerException。*

我尝试在我的WCF服务接口中使用[ServiceKnownType(typeof(string[])]),但是没有成功

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-02-17 05:11:23

晚了一年,但我也遇到了同样的问题,下面是你需要做的

代码语言:javascript
复制
List<SomeClass> mylist = new List<SomeClass>();

DataContractSerializer dcs = new DataContractSerializer(mylist.GetType());
XmlWriter writer = XmlWriter.Create(sb, XWS);
dcs.WriteObject(writer, query);      
writer.Close();

问题是,当你用类的类型构造序列化程序时,序列化程序不会把它看作一个数组,它只会看到一个对象。

如果通过先执行以下操作找到它:

代码语言:javascript
复制
DataContractSerializer dcs = new DataContractSerializer(SomeClass.GetType());
XmlWriter writer = XmlWriter.Create(sb, XWS);
dcs.WriteObject(writer, query[0]);  // Only get the first record from linq to sql
writer.Close();
票数 2
EN

Stack Overflow用户

发布于 2012-12-04 22:06:49

我也有同样的问题,但在用[ServiceKnownType(typeof(string[]))][ServiceKnownType(typeof(int[]))]验证了OperationContract之后,解决了这个问题。

例如:

代码语言:javascript
复制
[ServiceContract]
    public interface IReportService
    {
        [OperationContract]
        [ServiceKnownType(typeof(string[]))]
        [ServiceKnownType(typeof(int[]))]
        bool GenerateReport(int clientId, int masterId, string reportType, int[] vtIds, DateTime initialDate, DateTime finalDate,
                            bool descending, string userName, string timeZoneId, bool embedMap,
                            object[] vtExtraParameters, object[] vtScheduleParameters, string selectedCriteria,
                            out long reportID, out int scheduleID, out string message);
票数 2
EN

Stack Overflow用户

发布于 2009-03-30 01:44:08

没有理由必须对字符串数组执行KnownType操作。序列化程序应该已经知道这一点,并且数组不是问题。我在WCF中移动东西的列表没有问题。你能发布一个你正在做的有代表性的样本吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/695755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档