Existe uma maneira de tornar o XML DataContractSerializer mais limpo?

Usando o DataContractSerializer para serializar meu objeto, recebo uma saída semelhante a

 <?xml version="1.0" encoding="utf-8" ?> 
 <AgentNotification xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/The.name.space.Notifications">
  <_x003C_Created_x003E_k__BackingField i:nil="true" xmlns="http://schemas.datacontract.org/2004/07/The.name.space" /> 
  <_x003C_Id_x003E_k__BackingField i:nil="true" xmlns="http://schemas.datacontract.org/2004/07/The.name.space" />        
 <_x003C_Email_x003E_k__BackingField>[email protected]</_x003C_Email_x003E_k__BackingField> 
  <_x003C_Name_x003E_k__BackingField>Random Person</_x003C_Name_x003E_k__BackingField> 
 <_x003C_Policies_x003E_k__BackingField>
 <PolicyNotification>
  <_x003C_Created_x003E_k__BackingField i:nil="true" xmlns="http://schemas.datacontract.org/2004/07/The.name.space" /> 
  <_x003C_Id_x003E_k__BackingField i:nil="true" xmlns="http://schemas.datacontract.org/2004/07/The.name.space" /> 
  <_x003C_ConfirmationNumber_x003E_k__BackingField>Some number</_x003C_ConfirmationNumber_x003E_k__BackingField>   
  </PolicyNotification>
 <PolicyNotification>
  </_x003C_Policies_x003E_k__BackingField>  
  </AgentNotification>

Existe alguma maneira de produzir tags que são apenas

<Id>
<Name>

etc, sem a necessidade de cobrir minhas aulas com atributos?

Se não há uma maneira de garantir que a saída disso seja a mesma sempre correta? Então, se eu usar isso para renderizar meus gráficos de objeto, é XML para mash-se com um documento X * para geração de arquivos que eu nunca vou encontrar um problema onde meus nós mudam os nomes e o documento sai em branco correto?

questionAnswers(4)

yourAnswerToTheQuestion