В моем WebService я использую TimeSpan, чтобы сохранить запись в моей базе данных, но когда экземпляр объекта в приложении, которое использует WebService я получаю следующее сообщение:Не удается отправить System.TimeSpan к моему WebService
Cannot convert source type 'System.TimeSpan' to target type 'MyWebservice.TimeSpan'.
Вот как TimeSpan называется в моем WebService:
public System.TimeSpan? WaitingTime {get; set;}
Вот как ссылка WebService обновляется в моем приложении:
private TimeSpan waitingTimeField;
[System.Xml.Serialization.XmlElementAttribute(IsNullable=true, Order=12)]
public TimeSpan WaitingTime {
get {
return this.waitingTimeField;
}
set {
this.waitingTimeField = value;
this.RaisePropertyChanged("WaitingTime");
}
}
Если я изменяю ссылки на WebService, возникает конфликт между ссылкой и веб-сервисом, что делает невозможным его использование.
Я попытался создать объект типа MyWebService.TimeSpan, и это позволило создать объект WaitingTime, но не может отправлять параметры для объекта, поэтому MyWebService.TimeSpan всегда 00:00:00
EDIT:
Я попытался изменить ссылку WebService на:
private System.Nullable<System.TimeSpan> waitingTimeField;
[System.Xml.Serialization.XmlElementAttribute(IsNullable=true, Order=12)]
public System.Nullable<System.TimeSpan> WaitingTime
{
get {
return this.waitingTimeField;
}
set {
this.waitingTimeField = value;
this.RaisePropertyChanged("WaitingTime");
}
}
поэтому проблемы в применении более, но когда я посылаю к WebService заполненный TimeSpan, т он WebService "сбрасывает" его, так что было 00: 03: 02: 1321465 становится 00:00:00
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34281")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://tempuri.org/")]
public partial class TimeSpan : object, System.ComponentModel.INotifyPropertyChanged {
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName) {
System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
if ((propertyChanged != null)) {
propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
}
}
}
Это была не идеальная форма, потому что это вызвало необходимость в нескольких преобразованиях, но это было единственное найденное решение. –