8
के रूप में एक प्रकार से पारित मैं इस तरह की कुछ वर्ग करना चाहते हैं:एक विशेषता तर्क
[XmlRoot(ElementName = typeof(T).Name + "List")]
public class EntityListBase<T> where T : EntityBase, new()
{
[XmlElement(typeof(T).Name)]
public List<T> Items { get; set; }
}
लेकिन typeof (टी) तर्क नहीं विशेषता जा सकता है।
इसके बजाय मैं क्या कर सकता हूं?
ध्यान दें कि सामान्य वर्गों का उपयोग करके "स्थैतिक" बाईपास होगा। और कैश डेटा इस मामले में व्यावहारिक रूप से बेकार है। – Rzassar
@Rzassar आप गलत हैं। जेनेरिक एक सरल तंत्र के रूप में बहुत जानबूझकर है o प्रति एक प्रकार/टी एक serializer है। XmlAttributeOverrides का उपयोग करते समय कैश *** आवश्यक *** है - जैसा कि मैंने समझाया है: अन्यथा आप असेंबली को रिसाव करेंगे। इस दृष्टिकोण से असेंबली ** एकत्र नहीं किया जा सकता **। यदि आप सरल रचनाकारों का उपयोग करते हैं, तो यह आंतरिक रूप से कैश करता है। लेकिन XmlSerializer के अधिक विदेशी कन्स्ट्रक्टर के साथ आप (कॉलर) को इसे संभालने की आवश्यकता है। –