การเพิ่มประเภท WebService ลงในวิธีการแบบคงที่สาธารณะของคลาสแบบกำหนดเอง

ดูเหมือนว่าฉันจะมีปัญหาในการใช้งานกับเนมสเปซหลายรายการของบริการต่างๆ ตัวอย่างเช่น ฉันมีบริการต่อไปนี้เป็นเนมสเปซ:

ServiceMemberIDSS, ServiceVenueIDSS, ServiceProspectIDSS ฯลฯ เป็นต้น

บริการทั้งหมดนี้มีคุณสมบัติชื่อ AuthorizeHeader

ฉันต้องการสร้างวิธีการที่ผู้ใช้สามารถป้อน Namespace ที่จะใช้ได้

ตัวอย่างเช่น หากต้องการโทร ServiceMemberIDSS ฉันสามารถรวม using ServiceMemberIDSS; และใช้วิธีนี้:

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

และเรียกมันว่า: Authorize()

แต่ฉันจะเปลี่ยนแปลงสิ่งนี้เพื่อให้สิ่งใดสิ่งหนึ่งเป็นไปได้ได้อย่างไร:

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

or

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

ทั้งสองอย่างนี้สามารถทำได้อย่างไร? ฉันต้องทำอย่างไรกับ Authorize Method เพื่อให้ทำงานได้ด้วยวิธีใดวิธีหนึ่งเหล่านั้น


person Solomon Closson    schedule 20.02.2014    source แหล่งที่มา
comment
ลองสร้างโอเวอร์โหลดสำหรับวิธี Authorize ของคุณดูไหม ฉันไม่สามารถคิดวิธีอื่นได้เนื่องจากคุณต้องการเข้าถึงวิธีการภายในคลาสต่างๆ   -  person JW Lim    schedule 20.02.2014
comment
การโอเวอร์โหลดเป็นเรื่องปกติ แต่จะทำอย่างไรกับเนมสเปซ??   -  person Solomon Closson    schedule 20.02.2014
comment
แย่จัง ฉันอ่านคำถามผิดและคิดว่าเป็นชั้นเรียนที่แตกต่างกัน เห็นได้ชัดว่าคุณสามารถบรรลุสิ่งที่คุณต้องการได้ด้วยการไตร่ตรอง แต่ฉันไม่คุ้นเคยกับหัวข้อนี้ คุณสามารถดูคำถามนี้ stackoverflow.com/questions/9948518/ แต่จริงๆ แล้วถ้าเป็นเพียงเนมสเปซ 3 อัน ฉันจะ โดยส่วนตัวแล้ว ใช้วิธีการง่ายๆ และเพิ่มพารามิเตอร์ char,int หรือ string ให้กับ Authorize จากนั้นเพียงตัดสินใจว่าจะเรียกใช้เมธอดของเนมสเปซใดตามเงื่อนไข (if-else)   -  person JW Lim    schedule 20.02.2014
comment
โอเค แต่ฉันรู้เพียง 1 วิธีในการเรียกเนมสเปซ และนั่นคือ using มีวิธีอื่นไหม   -  person Solomon Closson    schedule 20.02.2014
comment
ฉันไม่คิดอย่างนั้น คุณจะต้องเพิ่มคำสั่ง using สำหรับเนมสเปซทั้ง 3 รายการ จากนั้นเรียกเมธอดที่แตกต่างกันด้วยชื่อที่มีคุณสมบัติครบถ้วน แต่ฉันอาจคิดผิด คำถามอื่นที่คล้ายกับของคุณ: stackoverflow.com/ คำถาม/5258253/   -  person JW Lim    schedule 20.02.2014
comment
ฉันต้องส่งสิ่งนี้ไปยังฟังก์ชันเช่นนี้: ServiceMemberIDSS.Member[] theMember = getMemberList(Authorize("ServiceMemberIDSS"), true, true, true, true, true); พารามิเตอร์แรกเป็นประเภท AuthorizeHeader แต่นั่นหมายความว่าฉันจะต้องกำหนดวิธีการของประเภทนั้น แม้ว่าค่าที่ส่งคืนจะเป็นประเภทนั้นใช่ไหม หากไม่ถูกต้อง ควรเป็นประเภท Method Authorize อย่างไร   -  person Solomon Closson    schedule 20.02.2014
comment
ฉันคิดว่าคุณควรกำหนดวิธีการ Authorize สำหรับแต่ละบริการ/เนมสเปซของคุณ จากนั้นคุณก็สามารถโทร namespaceName.Authorize ซึ่งจะคืนประเภทที่ถูกต้อง คุณยังสามารถย่อชื่อเนมสเปซของคุณด้วย using svcMember = ServiceMemberIDSS จากนั้นเรียกใช้เมธอดด้วย svcMember.Authorize   -  person JW Lim    schedule 20.02.2014