卡在初始化对象
Getting stuck to initialize object
我在 Visual Studio 2013 中生成了一个服务 WSDL,这里是代码的一部分
public partial class company : object, System.ComponentModel.INotifyPropertyChanged {
private string nameField;
private address[] addressesField;
private department[] departmentsField;
private long idField;
private bool idFieldSpecified;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Order=0)]
public string name {
get {
return this.nameField;
}
set {
this.nameField = value;
this.RaisePropertyChanged("name");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("addresses", Order=1)]
public address[] addresses {
get {
return this.addressesField;
}
set {
this.addressesField = value;
this.RaisePropertyChanged("addresses");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("departments", Order=2)]
public department[] departments {
get {
return this.departmentsField;
}
set {
this.departmentsField = value;
this.RaisePropertyChanged("departments");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public long id {
get {
return this.idField;
}
set {
this.idField = value;
this.RaisePropertyChanged("id");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool idSpecified {
get {
return this.idFieldSpecified;
}
set {
this.idFieldSpecified = value;
this.RaisePropertyChanged("idSpecified");
}
}
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));
}
}
}
public partial class address : object, System.ComponentModel.INotifyPropertyChanged {
private location locationField;
private string address1Field;
private string zipCodeField;
private string address_type_nameField;
private string gps_latitudeField;
private string gps_longitudeField;
private string address_idField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Order=0)]
public location location {
get {
return this.locationField;
}
set {
this.locationField = value;
this.RaisePropertyChanged("location");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("address", Order=1)]
public string address1 {
get {
return this.address1Field;
}
set {
this.address1Field = value;
this.RaisePropertyChanged("address1");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Order=2)]
public string zipCode {
get {
return this.zipCodeField;
}
set {
this.zipCodeField = value;
this.RaisePropertyChanged("zipCode");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Order=3)]
public string address_type_name {
get {
return this.address_type_nameField;
}
set {
this.address_type_nameField = value;
this.RaisePropertyChanged("address_type_name");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Order=4)]
public string gps_latitude {
get {
return this.gps_latitudeField;
}
set {
this.gps_latitudeField = value;
this.RaisePropertyChanged("gps_latitude");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Order=5)]
public string gps_longitude {
get {
return this.gps_longitudeField;
}
set {
this.gps_longitudeField = value;
this.RaisePropertyChanged("gps_longitude");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string address_id {
get {
return this.address_idField;
}
set {
this.address_idField = value;
this.RaisePropertyChanged("address_id");
}
}
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));
}
}
}
然后当我想插入一个新的公司名称时,代码如下:
Service.service my_service = new Service.service();
Service.service_insert_request my_insert_request = new Service.service_insert_request();
my_insert_request.module_code = "MAIN_MODULE";
my_insert_request.uuid = "b4ed2a5d-f259-4c09-9b1d-d8804dde1099";
my_service.service_name = "MY SERVICE NAME";
my_service.company = new Service.company();
my_service.company.name = "MY COMPANY NAME";
my_service.company.addresses[0] = new Service.address(); // here can not initialize the company.addresses ,give me error {"Object reference not set to an instance of an object."}
my_service.company.addresses[0].zipCode = "84000";
它给我一个错误 {"Object reference not set to an instance of an object."},请问您有什么建议或想法来解决这个错误吗?
您收到错误是因为您试图访问地址索引零而不先对其进行初始化。
试试这个:
my_service.company.addresses = new address[10];
my_service.company.addresses[0] = new Service.address();
或者在company的构造函数中初始化
我在 Visual Studio 2013 中生成了一个服务 WSDL,这里是代码的一部分
public partial class company : object, System.ComponentModel.INotifyPropertyChanged {
private string nameField;
private address[] addressesField;
private department[] departmentsField;
private long idField;
private bool idFieldSpecified;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Order=0)]
public string name {
get {
return this.nameField;
}
set {
this.nameField = value;
this.RaisePropertyChanged("name");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("addresses", Order=1)]
public address[] addresses {
get {
return this.addressesField;
}
set {
this.addressesField = value;
this.RaisePropertyChanged("addresses");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("departments", Order=2)]
public department[] departments {
get {
return this.departmentsField;
}
set {
this.departmentsField = value;
this.RaisePropertyChanged("departments");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public long id {
get {
return this.idField;
}
set {
this.idField = value;
this.RaisePropertyChanged("id");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool idSpecified {
get {
return this.idFieldSpecified;
}
set {
this.idFieldSpecified = value;
this.RaisePropertyChanged("idSpecified");
}
}
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));
}
}
}
public partial class address : object, System.ComponentModel.INotifyPropertyChanged {
private location locationField;
private string address1Field;
private string zipCodeField;
private string address_type_nameField;
private string gps_latitudeField;
private string gps_longitudeField;
private string address_idField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Order=0)]
public location location {
get {
return this.locationField;
}
set {
this.locationField = value;
this.RaisePropertyChanged("location");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("address", Order=1)]
public string address1 {
get {
return this.address1Field;
}
set {
this.address1Field = value;
this.RaisePropertyChanged("address1");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Order=2)]
public string zipCode {
get {
return this.zipCodeField;
}
set {
this.zipCodeField = value;
this.RaisePropertyChanged("zipCode");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Order=3)]
public string address_type_name {
get {
return this.address_type_nameField;
}
set {
this.address_type_nameField = value;
this.RaisePropertyChanged("address_type_name");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Order=4)]
public string gps_latitude {
get {
return this.gps_latitudeField;
}
set {
this.gps_latitudeField = value;
this.RaisePropertyChanged("gps_latitude");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Order=5)]
public string gps_longitude {
get {
return this.gps_longitudeField;
}
set {
this.gps_longitudeField = value;
this.RaisePropertyChanged("gps_longitude");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string address_id {
get {
return this.address_idField;
}
set {
this.address_idField = value;
this.RaisePropertyChanged("address_id");
}
}
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));
}
}
}
然后当我想插入一个新的公司名称时,代码如下:
Service.service my_service = new Service.service();
Service.service_insert_request my_insert_request = new Service.service_insert_request();
my_insert_request.module_code = "MAIN_MODULE";
my_insert_request.uuid = "b4ed2a5d-f259-4c09-9b1d-d8804dde1099";
my_service.service_name = "MY SERVICE NAME";
my_service.company = new Service.company();
my_service.company.name = "MY COMPANY NAME";
my_service.company.addresses[0] = new Service.address(); // here can not initialize the company.addresses ,give me error {"Object reference not set to an instance of an object."}
my_service.company.addresses[0].zipCode = "84000";
它给我一个错误 {"Object reference not set to an instance of an object."},请问您有什么建议或想法来解决这个错误吗?
您收到错误是因为您试图访问地址索引零而不先对其进行初始化。
试试这个:
my_service.company.addresses = new address[10];
my_service.company.addresses[0] = new Service.address();
或者在company的构造函数中初始化