2

これらのサービスのいくつかを .Net/C# で使用しようとしています。一部のサービスは簡単に使用できますが、他のサービスでは誤解を招くエラーが発生します。

これはコードの一部です:

        input.AcademicProgramOfStudySelectionByName = new AcademicProgramOfStudyByNameQueryMessage_syncAcademicProgramOfStudySelectionByName();
        input.AcademicProgramOfStudySelectionByName.AcademicProgramOfStudyName.languageCode = "DE";

2 行目に「オブジェクト参照がオブジェクト インスタンスに設定されていません」というエラーが表示されます。しかし、私は最初の行でオブジェクトを作成しました!

同じコードが他のサービスでも機能します。

4

2 に答える 2

0

オブジェクトを作成しました input.AcademicProgramOfStudySelectionByNameが、そのメンバーを作成していませんinput.AcademicProgramOfStudySelectionByName.AcademicProgramOfStudyName。どうやら、 class のコンストラクターはAcademicProgramOfStudyByNameQueryMessage_syncAcademicProgramOfStudySelectionByNameその member を設定しませんAcademicProgramOfStudyName。そのため、 のメンバーに値を代入しようとするAcademicProgramOfStudyNameと、そのインスタンスはNULLであり、例外が発生します。

コード例:

    AcademicProgramOfStudyByNameQueryResponse_InClient client = 
        new AcademicProgramOfStudyByNameQueryResponse_InClient(); 


    client.ClientCredentials.UserName.UserName = "XX";
    client.ClientCredentials.UserName.Password = "YY";

    AcademicProgramOfStudyByNameQueryMessage_sync input =
        new AcademicProgramOfStudyByNameQueryMessage_sync();


    input.AcademicProgramOfStudySelectionByName = new AcademicProgramOfStudyByNameQueryMessage_syncAcademicProgramOfStudySelectionByName();

    // this is the member that currently is still NULL and has to be created:
    input.AcademicProgramOfStudySelectionByName.AcademicProgramOfStudyName = new <insert whatever class is needed here>

    // now this should work without throwing an exception
   input.AcademicProgramOfStudySelectionByName.AcademicProgramOfStudyName.languageCode = "DE";

    AcademicProgramOfStudyByNameResponseMessage_sync output = 
        new AcademicProgramOfStudyByNameResponseMessage_sync(); 

    output = client.AcademicProgramOfStudyByNameQueryResponse_In(input);
于 2012-05-23T12:11:00.870 に答える
0

それは本当に奇妙です。この比較を参照してください:このコードでは、エラーが発生します

        AcademicProgramOfStudyByNameQueryResponse_InClient client = 
            new AcademicProgramOfStudyByNameQueryResponse_InClient(); 


        client.ClientCredentials.UserName.UserName = "XX";
        client.ClientCredentials.UserName.Password = "YY";

        AcademicProgramOfStudyByNameQueryMessage_sync input =
            new AcademicProgramOfStudyByNameQueryMessage_sync();


        input.AcademicProgramOfStudySelectionByName = new AcademicProgramOfStudyByNameQueryMessage_syncAcademicProgramOfStudySelectionByName();
        input.AcademicProgramOfStudySelectionByName.AcademicProgramOfStudyName.languageCode = "DE";

        AcademicProgramOfStudyByNameResponseMessage_sync output = 
            new AcademicProgramOfStudyByNameResponseMessage_sync(); 

        output = client.AcademicProgramOfStudyByNameQueryResponse_In(input);

そして、このコードでは私はいけません!!

        CustomerSimpleByNameAndAddressQueryResponse_InClient client =
          new CustomerSimpleByNameAndAddressQueryResponse_InClient();

        client.ClientCredentials.UserName.UserName = "XX";
        client.ClientCredentials.UserName.Password = "YY";

        CustomerSimpleByNameAndAddressQueryMessage_sync input = new CustomerSimpleByNameAndAddressQueryMessage_sync();

        input.CustomerSimpleSelectionByNameAndAddress = new CustomerSimpleByNameAndAddressQueryMessage_syncCustomerSimpleSelectionByNameAndAddress();
        input.CustomerSimpleSelectionByNameAndAddress.CustomerAddressCityName = "Berlin";

        CustomerSimpleByNameAndAddressResponseMessage_sync output = new CustomerSimpleByNameAndAddressResponseMessage_sync();

        output = client.CustomerSimpleByNameAndAddressQueryResponse_In(input);
于 2012-05-24T09:09:20.973 に答える