पर किसी विशिष्ट प्रकार के गुणों को बहिष्कृत करें, मुझे लगता है कि जेसन.NET लाइब्रेरी का उपयोग करके क्रमबद्ध होने से दिए गए प्रकार (ओं) (या उनमें से संग्रह) के कुछ गुणों को बाहर/अलग करने के लिए कैसे सोच रहा है? मैंने अपना खुद का अनुबंध रिज़ॉल्वर लिखने की कोशिश की (से डिफॉल्ट कंट्रैक्ट रिसेल्वर) कोई भाग्य नहीं है।JSON.NET - रनटाइम
मुझे पता है कि मैं DataAnnotations का उपयोग किया जा सकता है, साथ सजाने बाहर रखा गुण ScriptIgnoreAttribute, लेकिन यह मेरी स्थिति में लागू नहीं है। धारावाहिक वस्तुओं को वस्तुतः कुछ भी हो सकता है, इसलिए मुझे नहीं पता कि कौन से गुण डिज़ाइन-टाइम पर बहिष्कृत किए जाएंगे। मुझे केवल प्रकार गुणों के बारे में पता है जिन्हें धारावाहिक नहीं किया जाना चाहिए।
यह एक नहीं बल्कि सरल कार्य की तरह दिखता है, लेकिन दुर्भाग्य से मैं एक सभ्य समाधान कहीं भी नहीं मिला ...
Btw - आसानी से अगर यह कर सकते हैं - मैं Json.NET पुस्तकालय करने के लिए बाध्य नहीं कर रहा हूँ डिफ़ॉल्ट/अन्य .NET JSON serializers के साथ किया जाना चाहिए यह मेरे लिए एक समान समाधान होगा।
अद्यतन
गुण उन्हें क्रमानुसार करने की कोशिश कर रहा से पहले बाहर रखा जाना चाहिए। क्यों?
असल में, मुझे प्राप्त होने वाली वस्तुओं के प्रकार और क्रमबद्ध करने में IDynamicMetaObjectProvider से प्राप्त प्रकार के गतिशील गुण हो सकते हैं। मैं सभी विवरण वर्णन करने के लिए नहीं जा रहा हूँ, लेकिन DynamicMetaObject इन वस्तुओं में से GetMetaObject विधि से लौटे DynamicMetaObject.GetDynamicMemberNames विधि लागू नहीं है (NotImplementedException फेंकता है ...)। संक्षेप में - समस्या उन वस्तुओं (मुझे बहिष्कृत करने की आवश्यकता है) उनकी गुणों को की गणना करने की अनुमति नहीं देती है, जो जेसन.नेट सीरिएलाइज़र दृश्यों के पीछे क्या करने की कोशिश करता है। मैं हमेशा के साथ समाप्त नहीं हुआ IFplementedException फेंक दिया जा रहा है।
तो, स्पष्टीकरण के लिए, आप धारावाहिक गुणों से बाहर निकलना चाहते हैं जिनके मूल्य 'IDynamicMetaObjectProvider' को लागू करते हैं? मैं गतिशील प्रकारों से बहुत परिचित हूं, लेकिन मैं आपके मामले में अनिश्चित हूं कि वास्तव में आप क्या कर रहे हैं। ऐसा लगता है कि आप सामान्य कक्षाओं को क्रमबद्ध कर रहे हैं और इन पर कुछ गुणों को बाहर करना चाहते हैं जो गतिशील उदाहरणों को संदर्भित करते हैं। साथ ही आप यह भी संकेत देते हैं कि आप उन वस्तुओं के प्रकार, या आधार प्रकारों को नहीं जानते हैं, जिन्हें आप क्रमबद्ध कर रहे हैं - बस वे कभी-कभी उन गुणों का संदर्भ देते हैं जो गतिशील होते हैं और क्रमबद्ध नहीं किए जा सकते हैं। कृपया एक साधारण उदाहरण पोस्ट करें। –
बिल्कुल यही! जिस रूट ऑब्जेक्ट को मैं क्रमबद्ध कर रहा हूं वह कुछ भी हो सकता है, लेकिन कभी-कभी इसमें गतिशील प्रॉपर्टी हो सकती है (जो कुछ IDynamicMetaObjectProvider ऑब्जेक्ट का संदर्भ देता है, या कुछ संग्रह), जिसे मैं क्रमबद्धता से बाहर करना चाहता हूं। सीरियलाइज्ड ऑब्जेक्ट गतिशील नहीं है, केवल बहिष्कृत संपत्ति/ies हैं। –
क्या यह खाली गुणों के रूप में उन्हें क्रमबद्ध करने के बजाय इन गुणों को पूरी तरह से बाहर करने की आपकी आवश्यकता के लिए पर्याप्त नहीं है? तो फू नाम की एक संपत्ति जिसका उदाहरण गतिशील है उसे फू के रूप में क्रमबद्ध किया जाएगा: {} –