卡在初始化对象

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的构造函数中初始化