2009-05-04 9 views
6

मेरे पास एक डब्ल्यूसीएफ सेवा है जिसमें इसमें एक [डेटाकंट्रैक्ट] कक्षा परिभाषित है। प्रत्येक गुण में [डेटामेम्बर] विशेषता है और मैंने दो गुणों में कुछ डेटा एनोटेशन विशेषताओं [आवश्यक] और [स्ट्रिंग लम्बाई] जोड़े हैं।डब्ल्यूसीएफ सेवा अनुबंधों पर डेटा एनोटेशन

तब मैं एक सेवा संदर्भ के रूप में एक एएसपीएनटी एमवीसी अनुप्रयोग में इस सेवा का उपभोग करता हूं। जब मैं

var attr= from prop in TypeDescriptor.GetProperties(instance).Cast<PropertyDescriptor>() 
         from attribute in prop.Attributes.OfType<ValidationAttribute>() 
         select attribute; 

का उपयोग कर सभी विशेषताओं की एक सूची प्राप्त मैं देख रहा हूँ डेटा एनोटेशन में से कोई भी के माध्यम से आए हैं। क्या यह डब्ल्यूसीएफ की सीमा है या क्या मैं यहां मूलभूत रूप से कुछ गलत कर रहा हूं?

उत्तर

7

जब आपके डेटा अनुबंध तार पर भेजे जाते हैं तो गुणों को क्रमबद्ध नहीं किया जाएगा। नई विशेषता जो आपने अनिवार्य रूप से मेटा डेटा में बनाई है जो संपत्ति से जुड़ी है और जिस प्रकार से संपत्ति संबंधित है, उससे पहले। यह डेटा नहीं है और उपलब्ध नहीं होगा।

मुझे लगता है कि आपने अपने एएसपीएनटी एमवीसी एप्लिकेशन में एक सेवा संदर्भ जोड़ा है, यह तब तक होगा जब तक निर्दिष्ट नहीं किया गया हो, नए प्रॉक्सी कक्षाएं बनाएं जो आपके डेटा अनुबंध का प्रतिनिधित्व करती हैं।

जब आप सेवा संदर्भ जोड़ते हैं, तो यदि आप उन्नत बटन पर क्लिक करते हैं तो सुनिश्चित करें कि 'मौजूदा प्रकारों का उपयोग करें' चेक किया गया है। यह सुनिश्चित करता है कि आपकी सेवा आपके मौजूदा अव्यवस्था का उपयोग करेगी।

यह सबसे अच्छा अभ्यास नहीं हो सकता है क्योंकि क्लाइंट एप्लिकेशन को उस सेवा के बारे में ज्ञान होना होगा जो आप सेवा से लौट रहे हैं। यह ठीक हो सकता है यदि आपकी सेवा केवल आपके द्वारा उपयोग की जाती है, इस मामले में आपको अपने एएसपीएनटी एमवीसी आवेदन में अनुबंध का संदर्भ जोड़ना होगा।

+0

तो लब्बोलुआब यह है, क्या मैं इस आईडीई DataAnnotations कॉपी उपभोक्ता प्रॉक्सी-वर्गों के लिए जिम्मेदार बताते हैं कर सकते हैं ?? यदि हां, तो कैसे? मुझे आपकी पोस्ट में उल्लिखित 'मौजूदा प्रकारों का उपयोग करें' विकल्प नहीं मिला (मैं वीएस 10 का उपयोग करता हूं)। – Shimmy

3

ओडाटा टीम प्रमाणीकरण मेटाडेटा को "शब्दावली" के रूप में बेनकाब करने के लिए एक समाधान में काम कर रही है।

अधिक जानकारी: http://www.odata.org/blog/vocabularies

+0

बहुत दिलचस्प है। उम्मीद है कि हम मानक (पोर्टेबल) डेटा एनोटेशन और डेटा अनुबंध विशेषताओं का उपयोग करना जारी रख सकते हैं और ढांचे के आधार पर हमारे लिए नलसाजी की जाएगी। उसी प्रकार की इकाई घोषणा के लिए पहले से ही बहुत अधिक विशेषताएं हैं, उदा। serializer, एक्सएमएल serializer, डेटा अनुबंध, डेटा एनोटेशन, इकाई ढांचे ... !!! –

संबंधित मुद्दे