У меня есть два класса, и мне нужно, чтобы пространство имен свойства PackageItem входило в соответствии со свойством PackageItemNameSpace
Поскольку у меня есть несколько классов, которые наследуются от PackageItem, и каждый класс имеет свое собственное пространство имен
public class Package
{
//HERE namespace dynamically, getting in YourName property
public PackageItem PackageItem {get;set;}
}
public class PackageItem
{
public string PackageItemNameSpace {get;set;}
}
Как задать пространство имен, входящее в свойство PackageItemNameSpace
?
My Serialize Helper:
public static string Serialize<T>(T obj, string @namespace = "", bool omitDeclaration = false, bool omitUnusedCharacters = true)
{
var serializer = new XmlSerializer(typeof(T), @namespace);
var xmlWriterSettings = new XmlWriterSettings()
{
Encoding = Encoding.UTF8
};
if (omitUnusedCharacters)
{
xmlWriterSettings.Indent = false;
xmlWriterSettings.NewLineChars = "";
xmlWriterSettings.NewLineOnAttributes = false;
}
if (omitDeclaration)
{
xmlWriterSettings.OmitXmlDeclaration = true;
xmlWriterSettings.ConformanceLevel = ConformanceLevel.Auto;
}
using (var stream = new StringWriter())
{
using (var xmlWriter = XmlWriter.Create(stream, xmlWriterSettings))
{
if (string.IsNullOrEmpty(@namespace))
{
serializer.Serialize(xmlWriter, obj);
}
else
{
var xmlSerializerNamespaces = new XmlSerializerNamespaces();
xmlSerializerNamespaces.Add("", @namespace);
serializer.Serialize(xmlWriter, obj, xmlSerializerNamespaces);
}
return stream.ToString();
}
}
}