У меня есть сервис, у которого есть такой метод
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class MyService
{
[OperationContract]
public object MyMethod(string param1, string param2, object[] myarray)
{
//do stuff
return result;
}
}
Я вызываю мой метод из своего кода следующим образом:
public Dictionary<string, object> MyDictionary{ get; set; }
serv.MyMethodCompleted += new EventHandler<MyServiceReference.MyMethodCompletedEventArgs>(serv_MyMethodCompleted);
serv.MyMethodAsync("param1","param2", new ObservableCollection<object>(){MyDictionary});
void serv_MyMethodCompleted(object sender, MyServiceReference.MyMethodCompletedEventArgs e)
{
//Happy happy joy joy
}
Everithing craches с этой ошибкой:
Произошла ошибка при попытке
параметр сериализации: myarray.
Сообщение InnerException было «Тип
«System.Collections.Generic.Dictionary`2 [[System.String,
mscorlib, версия = 2.0.5.0,
Culture = нейтрально,
PublicKeyToken = 7cec85d7bea7798e], [System.Object,
mscorlib, версия = 2.0.5.0,
Culture = нейтрально,
PublicKeyToken = 7cec85d7bea7798e]]»
с названием контракта данных
«ArrayOfKeyValueOfstringanyType: http://schemas.microsoft.com/2003/10/Serialization/Arrays'
не ожидается Добавить любые типы не
статически известен к списку известных
типы - например, с помощью
Атрибут KnownTypeAttribute или
добавив их в список известных типов
передано в DataContractSerializer. '.
Пожалуйста, смотрите InnerException для более
подробности.
public System.IAsyncResult BeginCallMethod(string param1, string param2, System.Collections.ObjectModel.ObservableCollection<object> myarray, System.AsyncCallback callback, object asyncState) {
object[] _args = new object[3];
_args[0] = param1;
_args[1] = param2;
_args[2] = myarray;
System.IAsyncResult _result = base.BeginInvoke("MyMethod", _args, callback, asyncState); <--here it craches
return _result;
}
что я сделал не так? как я могу это исправить?