我檢測到一個奇怪的行爲,從Powershell腳本調用WCF服務。使用Powershell 2.0中的命令「New-WebServiceProxy」可以讓您從PS腳本向Web服務發送請求的能力。但是我在服務端的System.DateTime對象中遇到了一些問題,服務器端的值是總是 DateTime.Min。Powershell WCF服務DateTime屬性始終DateTime.Min(01.01.0001)
所以我創建了一個小測試服務的腳本,我可以重現這個錯誤。我用了一個「標準」的WCF項目從VS2010和extedended的「DataContract」類具有一個DateTime屬性:
[DataContract]
public class CompositeType
{
bool boolValue = true;
string stringValue = "Hello ";
[DataMember]
public bool BoolValue
{
get { return boolValue; }
set { boolValue = value; }
}
[DataMember]
public string StringValue
{
get { return stringValue; }
set { stringValue = value; }
}
[DataMember]
public DateTime Datum { get; set; }
}
PowerShell腳本調用服務:
cls
$serv = New-WebServiceProxy -uri 'http://localhost:50176/TestService.svc?wsdl' - Namespace wt
$data = [wt.CompositeType](New-Object wt.CompositeType)
$data.StringValue = "abcd"
$data.BoolValue = $true
$data.Datum = Get-Date
$serv.GetDataUsingDataContract($data)
如果需要的話,我可以給你是一個壓縮項目的Dropbox鏈接。
問候烏韋
我試過xxxSpecified解決方案,它的工作完美。感謝你及時的答覆。 – uernst