मैंने अपनी परियोजना के लिए ServiceStack OrmLite चुना है जो एक शुद्ध डेटा-ओरिएंटेड एप्लिकेशन है। मैं अंतिम उपयोगकर्ता को अपने एक्सएमएल प्रारूप में परिभाषित अपने ऑब्जेक्ट प्रकार बनाने की अनुमति देने के लिए तैयार हूं जिसका प्रयोग CodeDOM का उपयोग कर रनटाइम पर कक्षाएं उत्पन्न करने के लिए किया जाएगा।रनटाइम पर POCO क्लास में संपत्ति जोड़ें
मैं भी आवेदन के लिए आवश्यक कुछ "प्रणाली" वस्तुओं (यानी User
), लेकिन मैं सभी गुण अंत उपयोगकर्ता का उपयोग करेगा पूर्वानुमान नहीं कर सकता और इसलिए मैं एक तरह से कक्षाओं मैं में बनाने का विस्तार अनुमति देने के लिए देख रहा हूँ को परिभाषित किया जाएगा डिजाइन समय bellow उपयोगकर्ता
public class User
{
public Guid Uid { get; set; }
public String Username { get; set; }
public String Password { get; set; }
}
अंत नमूना एक Email
और एक Address
है चाहता है। उन्होंने कहा कि, (जो अभी भी OrmLite द्वारा इस्तेमाल किया जा सकता हो जाएगा उच्च वर्ग और पूरी कक्षा को 2 गुण जोड़ने के लिए सक्षम होना चाहिए, क्योंकि यह अधिलेखित करने की अनुमति देता है:
public class User
{
public Guid Uid { get; set; }
public String Username { get; set; }
public String Password { get; set; }
public String Email{ get; set; }
public String Address { get; set; }
}
मुझे पता करने का एक खतरा नहीं हो सकता है कि इसलिए सिस्टम को दुर्घटनाग्रस्त करने के लिए (यदि कक्षा पहले से ही तत्काल हो चुकी है) तो मैं इस मुद्दे से बचने और मेरी ज़रूरत की नकल करने का सबसे अच्छा तरीका ढूंढ रहा हूं।
यह वास्तव में समाधान के बहुत करीब है जिसके साथ मैं आया था। मैंने एन <-> एन रिश्ते के साथ 'संपत्ति' और 'डेटाऑब्जेक्ट टाइप' कक्षाएं बनाई हैं। मैंने फिर एक नया 'एक्सटेंशन एस्सेप्लर' बनाने के लिए कोडडॉम कोड जनरेटर का उपयोग किया जो ऊपर की सारणी से एक्सटेंशन गुणों का उपयोग करके नई कक्षाएं बनाएगा। मैंने एक्स्टेंशनकी को प्रत्येक मूल प्रकार के लिए ग्रिड के रूप में संलग्न किया है जो कि संबंधित नए प्रकारों द्वारा पहचानकर्ता के रूप में उपयोग किया जाता है। –
नामकरण संघर्ष से बचने के लिए नए बनाए गए प्रकारों यानी 'उपयोगकर्ता' और 'उपयोगकर्ता एक्सटेंशन' के लिए उपसर्ग या प्रत्यय जोड़ने जितना आसान है। –