Menambahkan Jenis Layanan Web ke Metode Statis Publik Kelas Kustom

Sepertinya saya mengalami kesulitan dalam mengimplementasikan penggunaan beberapa namespace dari beberapa layanan. Misalnya, saya memiliki Layanan berikut sebagai Namespace:

ServiceMemberIDSS, ServiceVenueIDSS, ServiceProspectIDSS, dst.dst.

Semua Layanan ini memiliki properti bernama, AuthorizeHeader

Saya ingin membuat Metode di mana pengguna dapat memasukkan Namespace yang akan digunakan.

Misalnya, untuk memanggil ServiceMemberIDSS, saya dapat memasukkan using ServiceMemberIDSS; dan memiliki Metode ini:

public static AuthorizeHeader Authorize()
{
    AuthorizeHeader _authHeader = new ServiceMemberIDSS.AuthorizeHeader();
    _authHeader.SetCredentials();
    return _authHeader;
}

Dan menyebutnya seperti: Authorize()

Namun bagaimana saya bisa mengubahnya sehingga salah satu dari hal ini mungkin terjadi:

Authorize.ServiceMemberIDSS();
Authorize.ServiceVenueIDSS();
Authorize.ServiceProspectIDSS();

or

Authorize(ServiceMemberIDSS);
Authorize(ServiceVenueIDSS);
Authorize(ServiceProspectIDSS);

Bagaimana cara melakukan keduanya? Apa yang harus saya lakukan pada Metode Otorisasi agar ini berfungsi dengan salah satu cara tersebut?


person Solomon Closson    schedule 20.02.2014    source sumber
comment
Bagaimana dengan membuat kelebihan beban untuk metode Authorize Anda? Saya tidak dapat memikirkan cara lain untuk melakukannya karena Anda ingin mengakses metode dalam kelas yang berbeda.   -  person JW Lim    schedule 20.02.2014
comment
Kelebihan beban boleh saja, tapi bagaimana cara melakukannya dengan namespace??   -  person Solomon Closson    schedule 20.02.2014
comment
Sayang sekali, saya salah membaca pertanyaan dan mengira mereka kelas berbeda. Rupanya Anda bisa mencapai apa yang Anda inginkan dengan refleksi, tapi saya belum familiar dengan topiknya. Anda dapat melihat pertanyaan ini stackoverflow.com/questions/9948518/ . Tapi sejujurnya jika hanya 3 namespace saya secara pribadi akan mengambil cara mudah dan menambahkan parameter char,int atau string ke Authorize, lalu memutuskan metode namespace mana yang akan dipanggil melalui kondisi (if-else).   -  person JW Lim    schedule 20.02.2014
comment
Oke, tapi saya hanya tahu 1 cara untuk memanggil namespace, yaitu dengan using, apakah ada cara lain?   -  person Solomon Closson    schedule 20.02.2014
comment
Saya kira tidak demikian. Anda harus menambahkan direktif using untuk ketiga namespace, lalu memanggil metode yang berbeda dengan nama yang sepenuhnya memenuhi syarat, tapi saya mungkin salah. Pertanyaan lain yang serupa dengan pertanyaan Anda: stackoverflow.com/ pertanyaan/5258253/   -  person JW Lim    schedule 20.02.2014
comment
Baiklah, saya perlu meneruskan ini ke fungsi seperti ini: ServiceMemberIDSS.Member[] theMember = getMemberList(Authorize("ServiceMemberIDSS"), true, true, true, true, true); parameter pertama bertipe AuthorizeHeader, tetapi itu berarti saya harus mendefinisikan Metode bertipe itu, meskipun nilai yang dikembalikan bertipe itu, bukan? Jika itu salah, lalu apa jenis Metode Authorizenya?   -  person Solomon Closson    schedule 20.02.2014
comment
Saya pikir Anda sebaiknya mendefinisikan metode Authorize untuk setiap layanan/ruang nama Anda. Kemudian Anda cukup memanggil namespaceName.Authorize, yang akan mengembalikan tipe yang benar. Anda juga dapat mempersingkat nama namespace Anda dengan using svcMember = ServiceMemberIDSS lalu memanggil metode tersebut dengan svcMember.Authorize.   -  person JW Lim    schedule 20.02.2014