在C#中,如果我想序列化一个实例XmlSerializer,那么对象的类型不必用[Serializable]属性标记.但是,对于其他序列化方法,例如DataContractSerializer,需要将类标记为[Serializable]或[DataContract].
是否有关于序列化要求的标准或模式?
如何将以下XML转换为List<string>或String[]:
<Ids>
<id>1</id>
<id>2</id>
</Ids>
Run Code Online (Sandbox Code Playgroud) 我有一个我标记为Serializable的类,具有Uri属性.如何在不创建string类型属性的情况下让Uri序列化/反序列化?
XMLWriter和之间有什么区别XMLDictionaryWriter?在哪些情况下每个人都使用?
您好,并提前感谢您的帮助.尝试使用XmlSerializer和StringReader将XElement反序列化为对象时遇到问题.我的反序列化代码是这样的:
/*deseierialize a single RegisterServerObject instance from xml*/
static RegisterServerObject DeserializeSingleServerFromXml(XElement serverElement)
{
XmlSerializer deserializer = new XmlSerializer(typeof(RegisterServerObject));
RegisterServerObject server;
using (var reader = new StringReader(serverElement.ToString()))
server = (RegisterServerObject)deserializer.Deserialize(reader);
return server;
}
Run Code Online (Sandbox Code Playgroud)
我知道例外所揭示的读者内容是:
<Server>
<ServerID>11</ServerID>
<GroupID />
<ParentID>15</ParentID>
<ServerName>IAProd1</ServerName>
<User>admin</User>
<UID>123</UID>
<PWD>password</PWD>
<Domain>InputAccel</Domain>
<Location>Left</Location>
<AssociatedModules>
<Module>
<ModId>1</ModId>
<ServerId>11</ServerId>
<ModName>TestModA</ModName>
<ModuleStatus>1</ModuleStatus>
</Module>
<Module>
<ModId>2</ModId>
<ServerId>11</ServerId>
<ModName>TestModB</ModName>
<ModuleStatus>1</ModuleStatus>
</Module>
<Module>
<ModId>9</ModId>
<ServerId>11</ServerId>
<ModName>TestModI</ModName>
<ModuleStatus>1</ModuleStatus>
</Module>
<Module>
<ModId>10</ModId>
<ServerId>11</ServerId>
<ModName>TestModJ</ModName>
<ModuleStatus>1</ModuleStatus>
</Module>
</AssociatedModules>
</Server>
Run Code Online (Sandbox Code Playgroud)
我的RegisterServerObject类如下所示:
[XmlRoot("Server")]
public class RegisterServerObject
{
public RegisterServerObject() { …Run Code Online (Sandbox Code Playgroud) 我们正在使用XmlSerializer,我想为某些类提供自定义序列化.但是,我并不总是能够修改有问题的类的源代码,否则我可以让它实现IXmlSerializable.有没有办法做到这一点?
我遇到了使用布尔值反序列化XML文件的问题.我反序列化的源XML文件是从VB6应用程序创建的,其中所有布尔值都是大写的(True,False).当我尝试反序列化XML时,我得到了一个
System.FormatException: The string 'False' is not a valid Boolean value.
Run Code Online (Sandbox Code Playgroud)
有没有办法说用属性忽略大小写?
我希望转换一个看起来像这样的类......
public class Amenity {
public String id;
public String value;
}
Run Code Online (Sandbox Code Playgroud)
使用JaxB注释将以下XML转换为以下XML:
<amenity id="id-string-here">value-string-here</amenity>
Run Code Online (Sandbox Code Playgroud)
有谁知道在value成员变量上使用什么注释来完成这个?我到目前为止最接近的是:
@XmlRootElement
public class Amenity {
@XmlAttribute
public String id;
@XmlElement
public String value;
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,这种方法不允许我指定value不应将成员变量呈现为自己的标记<value></value>.
如何使自己的自定义类可序列化?我特别想把它写到iPhone上的文件中,只是plist而你的类只是一个简单的实例类,只是NSStrings而且可能是NSUrl.
我很困惑 - 我应该何时使用XML序列化,何时应该在.NET框架中使用二进制序列化?
.net c# serialization xml-serialization binary-serialization
c# ×7
.net ×3
xml ×3
annotations ×1
boolean ×1
iphone ×1
java ×1
jaxb ×1
jaxb2 ×1
objective-c ×1
silverlight ×1
xmlwriter ×1