فئة WCF تنفذ عقدين للتشغيل في عقود خدمة مختلفة مع نفس الاسم
-
26-09-2019 - |
سؤال
لقد أعلنت عقدين خدمة على النحو التالي:
[ServiceContract]
public interface IContract1
{
[OperationContract]
double Add(int ip);
}
[ServiceContract]
public interface IContract2
{
[OperationContract]
double Add(double ip);
}
لدي فئة تنفذ هذين العقدين. لقد أنشأت نقطتين نهاية لكلا العقدين. لكنني غير قادر على الوصول إلى الخدمة من رمز العميل. يعرض خطأً كبيراً عندما أحاول تحديث مرجع الخدمة على النحو التالي:
يحتوي البيانات الوصفية على خطأ لا يمكن حله .... لم يكن هناك نقطة نهاية الاستماع في ... ، إلخ.
أعلم أنه لا يمكنك الحصول على اثنين OperationContract
S بنفس الاسم ولكن هل من الممكن أن يكون لديك عقدين للتشغيل في عقود خدمة مختلفة بنفس الاسم ولكن توقيع مختلف؟
المحلول
إذا قامت إحدى الخدمة بتطبيق كلا العقدين ، فيجب عليك إعطاء أسماء فريدة لعقود التشغيل الخاصة بك.
[ServiceContract]
public interface IContract1
{
[OperationContract(Name="AddInt")]
double Add(int ip);
}
[ServiceContract]
public interface IContract2
{
[OperationContract(Name="AddDouble")]
double Add(double ip);
}
نصائح أخرى
يمكنك استخدام ما يلي.
[ServiceContract]
public interface IContract1
{
[OperationContract(Name = "Add1")]
double Add(int ip);
}
[ServiceContract]
public interface IContract2
{
[OperationContract(Name = "Add2")]
double Add(double ip);
}
لا تنتمي إلى StackOverflow