好吧,我真的迷失在這一張上。我創建了一個wcf服務,我發佈了xml並且服務對數據做了一些處理。除了當我把開放的xml標籤放在我的xml的最上面時,一切都很好。當我在調試模式下查看所有內容時,數據都會顯示爲空。將xml版本標籤添加到xml併發布到wcf時,數據丟失了
WCF中我的C#代碼是這樣的:
public interface ITest
{
[OperationContract]
void DoWork();
[OperationContract]
[WebDispatchFormatter]
[WebInvoke(UriTemplate = "MyTest", Method = "*")]
void MyTest(PassedIn request);
}
[Serializable]
[DataContract(Namespace = "", Name = "")]
public class PassedIn
{
public PassedIn() { }
[DataMember]
public string firstname {get; set;}
[DataMember]
public string lastname {get; set;}
[DataMember]
public string email {get; set;}
}
下面是不同的XML帖子:
<mypost>
<firstname>test</firstname>
<lastname>foo</lastname>
<email>[email protected]</email>
</mypost>
<?xml version="1.0"?>
<mypost>
<firstname>test</firstname>
<lastname>foo</lastname>
<email>[email protected]</email>
</mypost>
我能解決這個問題,其中的數據不會丟失當標籤在xml中時,通過向數據庫添加命令,如下所示:
public class PassedIn
{
public PassedIn() { }
[DataMember (order=1)]
public string firstname {get; set;}
[DataMember (order=2)]
public string lastname {get; set;}
[DataMember (order=3)]
public string email {get; set;}
}
但現在它有一個相反的效果。如果我沒有「?xml version」標籤,則數據會以空值顯示。
有沒有人遇到這樣?真的可以使用一些建議。謝謝
不知道這是否會無所謂,但你有沒有試過裝飾PassedIn用'[DataContract]'屬性? – Tim 2012-07-27 19:24:24
你是不是已經離開那個部分了。我剛剛在那裏編輯我的代碼。 – user1096865 2012-07-27 19:27:11
如果您可以控制兩端,請查看[ServiceStack](http://servicestack.net/)。 – 2012-07-27 23:57:49