I AME методы выполняющиеся на другом компьютере с помощью службы WCF здесь немного пример моего кода:Отправка объектов в WCF
вызов метода: return pipeProxy.SystemRequest(InstanceName, MethodName, Parameters);
Это метод и интерфейс:
[ServiceContract]
public interface IBlissRequest
{
[OperationContract]
object SystemRequest(string InstanceName, string MethodName, object[] Parameters);
}
public class BlissRequest : IBlissRequest
{
public object SystemRequest(string InstanceName, string MethodName, object[] Parameters)
{
return System21.BlissProcessingUnit.BPU.RequestFromIBC(InstanceName, MethodName, Parameters); ;
}
}
, как вы можете видеть, я отправить 2 строку и массив объектов, и я получить объект назад, этот метод вызываются разными местами и объекты может быть Diferent, если я посылаю строки или целые числа с помощью этого метода все работает нормально, но когда я пытаюсь отправить List, все идет плохо, и метод не может выполнить. теперь я прочитал, что используется стандарт DataContractSerializer
, и что мне нужно его преобразовать в XmlSerializer
, чтобы заставить его работать. ive найдено http://msdn.microsoft.com/en-us/library/ms733901.aspx, но я не могу заставить мой пример работать. мог бы кто-нибудь указать мне в хорошем направлении.
Это исключение, которое брошено:
Был ошибка при попытке сериализовать параметр http://tempuri.org/:Parameters. Сообщение InnerException было «Тип» System.Collections.Generic.List`1 [[System.String, mscorlib, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089]] 'с именем контракта данных' ArrayOfstring: http://schemas.microsoft.com/2003/10/Serialization/Arrays ' неожиданно. Подумайте об использовании DataContractResolver или добавьте любые типы, не известные статически в список известных типов - например, с помощью атрибута KnownTypeAttribute или путем добавления их в список известных типов, переданных DataContractSerializer. '. Дополнительную информацию см. В InnerException.
Внутреннее исключение:
{ "Тип 'System.Collections.Generic.List`1 [[System.String, mscorlib, Version = 4.0.0.0, культура = нейтральной, PublicKeyToken = b77a5c561934e089]]' с имя контракта с данными «ArrayOfstring: http://schemas.microsoft.com/2003/10/Serialization/Arrays» не ожидается. Рассмотрим использование DataContractResolver или добавьте любые типы, не известные статически в список известных типов - например, с помощью атрибута KnownTypeAttribute или путем добавления их в список известных типов, переданных в DataContractSerializer. "}
Объект, который необходимо отправить: если возможно все, если не только все обычные вещи C#, такие как Lists
вам нужно будет сериализовать свой список на клиенте, а затем десериализовать его на сервере – Jonesopolis
@ Jonesy, но во время выполнения я не знаю, что посылается или принимается, поэтому я не знаю, когда это список или когда он строка – Jeffnl
oh жаль, что я неправильно понял – Jonesopolis