كيف يمكنني اجبار WCF إلى الإنشاء التلقائي WSDLs مع معلمات الأسلوب المطلوبة (minoccurs = "1")؟

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

  •  08-07-2019
  •  | 
  •  

سؤال

وأثناء استخدام WCF وOperationContracts لقد الأسلوب التالي تعريف:

    [OperationContract]
    [FaultContract(typeof(ValidationFault))]
    [FaultContract(typeof(FaultException<ExceptionDetail>))]
    int DoSomething(int someId, MyComplexType messageData);

عند هذا يحصل ترجمت إلى WSDL بواسطة وقت التشغيل WCF، فإنه ينتهي مع مع minoccurs = "0" المدرجة لsomeId المعلمات وmessageData (وبعد ذلك يلقي خطأ وقت التشغيل إذا كانت هذه المعايير مفقودة).

إذا كنت توليد وكيل باستخدام SoapUI أحصل على شيء يشبه هذا:

  <com:DoSomething>
     <!--Optional-->
     <com:EventId>1</com:EventId>
     <!--Optional-->
     <com:myComplexType >
        <com:id>1</com:id>
     </com:myComplexType >
  </com:DoSomething>

ويتم وضع علامة على حقل معرف في MyComplexType مع DataMemeber السمة باستخدام ل requi أحمر = "صحيح"، وبالتالي يتعرض إلزاميا.

من الواضح مضللة تماما لWSDL لتحديد أن المعلمة اختيارية عندما لا يكون، ولكن لا أستطيع أن أرى أي طريقة واضحة لتوصيف وOperationContract لإجبار WCF الاعتراف وفضح هذه المعايير على النحو المطلوب.

وأنا في حيرة قليلا لا يبدو وسيلة واضحة للقيام بذلك (التحسس القراءة / MSDN / جوجل). أو أنا ذاهب أعمى وتطل على شيء واضح.

وأي أدلة؟

نصائح أخرى

وتأكد من أن MyComplexType تم وضع علامة عليها سمة [DataContract].

لعقدي WCF الخاصة، وجدت أن minOccurs = 1 لن تظهر للل requi أحمر = true في اختصار لدت حتى تميزت سلسلة كاملة من الأشياء المتورطين في العقد على هذا النحو.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top