هل هناك طريقة لكشف خدمات WCF المتعددة من خلال نقطة نهاية واحدة؟

StackOverflow https://stackoverflow.com/questions/2461256

  •  20-09-2019
  •  | 
  •  

سؤال

أقدم حاليًا خدمة بعدة طرق عبر WCF.أرغب في إعادة البناء بحيث يتم تقسيم الخدمة الفردية إلى فئات متعددة، تقدم كل منها مجموعة مختلفة من الوظائف.ومع ذلك، أفضل أن يظل لدي اتصال واحد بالعميل.هل هذا ممكن؟

أعتقد أن الإجابة هي لا، فكيف أحل هذه المشكلة؟ايوجد اي عمل في هذه المنطقه؟أم أن فكرتي غبية تمامًا ويجب أن أغير تصميم التطبيق؟

هل كانت مفيدة؟

المحلول

وحفظ E = ABC (نقطة النهاية = عنوان، التجليد، عقد). مع عقد مختلف، حتى مع كل شيء على قدم المساواة، وكنت قد حصلت على ما زالت نقطة نهاية مختلفة.

ومع ذلك، خدمة واحدة <م> يمكن تنفيذ عقود الخدمات متعددة. وسيتيح هذا ملف .svc واحد ليكون هدفا لعدة عقود الخدمات المختلفة، كل تكوين على عناوين URL النسبية إلى .svc.

نصائح أخرى

هل يمكن أن تنفذ فصول جزئية التي تسمح لك بفصل المحتوى الخاص بك في ملفات cs فردية مع الحفاظ على واجهة واحدة ونقطة نهاية واحدة.هذه ليست الطريقة المثالية، لأنها في نهاية المطاف لا تزال فئة واحدة مكونة من فئات جزئية، ولكنها على الأقل تبدو كذلك في بنية ملفك، مما يوفر بعض الفصل بدلاً من ملف فئة ضخم .

هيكل المثال:

IMyService.cs

[ServiceContract]
public interface IMyService
{
   [OperationContract]
   string GenericMethod()

   [OperationContract]
   string GetUsers(int companyId)

   [OperationContract]
   string GetMessages(int userId)

}

MyService.cs

//Put any attributes for your service in this class file
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public partial class MyService : IMyService
{
  public string GenericMethod() 
  {
     return "";
  }
}

UserService.cs

public partial class MyService
{
    public string GetUsers(int companyId) 
    {
       return "";
    }
}

خدمة الرسائل.cs

public partial class MyService
{
      public string GetMessages(int userId) 
      {
          return "";
      }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top