मैं Xml क्रमांकन करने के लिए कोड लिख रहा हूं। नीचे समारोह के साथ।
public static string SerializeToXml(object obj)
{
XmlSerializer serializer = new XmlSerializer(obj.GetType());
using (StringWriter writer = new StringWriter())
{
serializer.Serialize(writer, obj);
return writer.ToString();
}
}
यदि तर्क पैरामीटर रहित कंस्ट्रक्टर के बिना वर्ग का एक उदाहरण है, तो यह एक अपवाद फेंक देगा।
अखंडित अपवाद: System.InvalidOperationException: CSharpConsole.Foo क्रमबद्ध नहीं किया जा सकता क्योंकि इसमें एक पैरामीटर रहित निर्माता नहीं है। System.Xml.Serialization.TypeDesc.CheckSupported () System.Xml.Serialization.TypeScope.GetTypeDesc पर टाइप करें (Type type, MemberInfo sourc e, BoolD DirectReference, Boolean फेंकऑनएयर) System.Xml.Serialization.ModScopeGope। System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping पर बूलियन प्रत्यक्ष संदर्भ) (Type type, XmlRootAttribute root, String defaultNamespace) System.Xml.Serialization.XmlSerializer..ctor (प्रकार प्रकार, स्ट्रिंग DefaultName space) को सिस्टम .Xml पर। XmlSerializer..ctor (प्रकार प्रकार)
Xml क्रमांकन को सफल करने की अनुमति देने के लिए एक पैरामीटर रहित निर्माता क्यों होना चाहिए?
EDIT: cfeduke के उत्तर के लिए धन्यवाद। पैरामीटर रहित कंस्ट्रक्टर निजी या आंतरिक हो सकता है।
XmlSerializer
डिसेरिएलाइज़ेशन के लिए डिफ़ॉल्ट पैरामीटर रहित निर्माता की आवश्यकता होती है।