2009-10-05 5 views
2

Voici mon interfaceComment se débarrasser espace de noms XML par défaut si je un sérialiser un objet dans WCF en utilisant DataContact

[ServiceContract(Namespace = "")]  
interface IParam  {  } 

Voici ma classe

public class Parameter : IParam 
{ 

    private string categoryName; 

    [DataMember] 
    public string CategoryName 
    { 
     get { return categoryName; } 
     set { categoryName = value; } 
    } 


} 

Mon contact de fonctionnement est

[OperationContract] 
string GetSegmentsByCategoryName(Parameter Params); 

Voici ma principale:

Parameter abc = new Parameter(); 
abc.CategoryName = "xxx"; 

str = client.Channel.GetSegmentsByCategoryName(abc); 

quand je vérifie à Wireshark je suis arrivé ce xml

<Params xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
<CategoryName> 
xxx 
</CategoryName> 
</Params> 

i un pour se débarrasser de xmlns: i = "http://www.w3.org/2001/XMLSchema-instance quand je passe la objet via wcf httpbinding.

+0

I one -> Je veux –

+0

vous essayez de faire cela parce que le consommateur du message est en train d'analyser le xml trop strict et de rejeter le message en raison de l'espace de noms? Si tel est le cas, il ne sera peut-être pas judicieux de supprimer l'espace de noms. –

Répondre

1

Ce n'est pas l'espace de nom par défaut/element, cependant - il s'agit simplement d'un alias inutilisé d'un espace de noms que peut utiliser. Cela ne brise rien. Je conseillerais fortement de simplement le laisser tranquille.

Si vous avez vraiment, vraiment voulait faire - peut-être écrire un message inspector.

Questions connexes