【发布时间】:2015-11-04 05:25:32
【问题描述】:
我必须调用具有复杂数据结构的第三方 Wcf 服务的方法作为参数。对于 VS2012,我引用了 Wsdl。 Reference.cs 是自动生成的。该参数是一个大结构,并且有一些自定义元素的嵌套数组。以下是 Reference.cs 中的部分代码
private ProcessTableMachinery[] processDataTableMachineryField;
/// <remarks/>
[System.Xml.Serialization.XmlArrayAttribute(Order=27)]
[System.Xml.Serialization.XmlArrayItemAttribute(IsNullable=false)]
public ProcessTableMachinery[] ProcessDataTableMachinery {
get {
return this.processDataTableMachineryField;
}
set {
this.processDataTableMachineryField = value;
this.RaisePropertyChanged("ProcessDataTableMachinery");
}
}
ProcessTableMachinery 是一个类,它包含另一个数组,如下所示。
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.18408")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://blue-group.it/")]
public partial class ProcessTableMachinery : object, System.ComponentModel.INotifyPropertyChanged {
private SingleDataMachinery[] dataTableValuesField;
/// <remarks/>
[System.Xml.Serialization.XmlArrayAttribute(Order=7)]
[System.Xml.Serialization.XmlArrayItemAttribute(IsNullable=false)]
public SingleDataMachinery[] DataTableValues {
get {
return this.dataTableValuesField;
}
set {
this.dataTableValuesField = value;
this.RaisePropertyChanged("DataTableValues");
}
}
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName) {
System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
if ((propertyChanged != null)) {
propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
}
}
}
我必须使用以下数据初始化 dataTableValuesField。
objRetTable.ProcessDataTableMachinery[iIndex].dataTableValuesField = new RemoteWebService.SingleDataMachinery[1];
我收到一个错误 ProcessTableMachinery.dataTableValuesField 由于其保护级别而无法访问。我正在寻找一种解决方法。如果我将 dataTableValuesField 更改为 public 到 reference.cs 中,我会收到运行时反射错误。我应该修改 Wsdl 还是自动生成的类?
【问题讨论】: