关于WCF的难题请教。
我们刚刚用Visual studio 2008开发了一个WCF服务(Framework2.0),现在需要用Visual Studio 2003 (也就是Framework1.1)调用,难点是那个WCF服务返回的是一个在2.0里自动生成的非常复杂的含Dataset的类,我在网上查了一天,实在找不到办法,在1.1里如何吸收这个结果。Team leader说应该是可以的,而且还恶狠狠地对我说,“别跟我说,这不可能!”有哪位高手又类似的经验吗?
[最优解释]
现在添加Web引用出错吗?
[其他解释]
这是事关我生死存亡的大事,为什么没有一个坛友帮忙? 我再解释一下, 服务是用framework3.5(也就是2.0)做的,但是现在要用到framework 1.1中(因为项目很大很大,这个框架近期不可能改变), 但是服务返回的结果是一个在framework3.5/2.0中生成的一个含Dataset的复杂类, 在1.1中究竟有没有办法解读这个类?直接调用2.0中的类定义不可能,Team leader给的建议是查一下xml, serialization/deserialization, proxy什么的,但是我实在找不到解决的办法,真是欲哭无泪啊。
[其他解释]
添加web引用一点问题都没有。 主要是引用结果如何读取,因为是一个在2。0里自动生成的非常复杂的类, 我实在不知道在1。1里如何读取。 有人告诉我用XML
读取,我这方面一点经验都没有,引用结果的类是这么定义的(很显然,2。0的类不能直接被1。1使用):
//------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.3053
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------
#pragma warning disable 1591
namespace Entities.Data {
/// <summary>
///Represents a strongly typed in-memory cache of data.
///</summary>
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")]
[global::System.Serializable()]
[global::System.ComponentModel.DesignerCategoryAttribute("code")]
[global::System.ComponentModel.ToolboxItem(true)]
[global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")]
[global::System.Xml.Serialization.XmlRootAttribute("ProductDS")]
[global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")]
public partial class ProductDS : global::System.Data.DataSet {
private ProducedTitleDataTable tableProduced;
private StatusDataTable tableStatus;
private ErrorsDataTable tableErrors;
private WarningsDataTable tableWarnings;
private global::System.Data.SchemaSerializationMode _schemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
public ProductDS() {
this.BeginInit();
this.InitClass();
global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged);
base.Tables.CollectionChanged += schemaChangedHandler;
base.Relations.CollectionChanged += schemaChangedHandler;
this.EndInit();
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
...