我有一个用于反序列化 .net 对象的类。我试图让根 XML 像这样出来:
<TrainingCenterDatabase
xsi:schemaLocation="http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2 http://www.garmin.com/xmlschemas/TrainingCenterDatabasev2.xsd"
xmlns:ns5="http://www.garmin.com/xmlschemas/ActivityGoals/v1"
xmlns:ns3="http://www.garmin.com/xmlschemas/ActivityExtension/v2"
xmlns:ns2="http://www.garmin.com/xmlschemas/UserProfile/v2"
xmlns="http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns4="http://www.garmin.com/xmlschemas/ProfileExtension/v1">
我类(class)的 XmlRoot 如下所示:
[XmlRoot(ElementName="TrainingCenterDatabase",Namespace=Declarations.SchemaVersion,IsNullable=false),Serializable]
public class TrainingCenterDatabase : com.trainerroad.garmin.TrainingCenterDatabase_t
{
public TrainingCenterDatabase() : base()
{
}
}
public struct Declarations
{
public const string SchemaVersion = "http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2";
}
然后输出:
<TrainingCenterDatabase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
如何将额外的命名空间添加到我的 XmlRoot?
最佳答案
可能不是最好的解决方案,但如果节省空间或流量真的很重要,您可以使用自定义序列化方法
关于c# - 将 .net 对象反序列化为具有多个命名空间的 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8662914/