2013-05-23 4 views
0

У меня есть метод, как это в ФОС службыВ чем разница между ними?

public string PostAllSurveList(List<Survey> surveyList) 
{ 
    var surveyDbList = ConstructDbServeyList(surveyList); 
    foreach (var survey in surveyDbList) 
    { 
     _db.surveys.Add(survey); 
    } 
    _db.SaveChanges(); 
    return "Successfully Saved"; 
} 

, когда я называю этот метод в C# следующим образом он работает нормально

var surveys = new Survey[]{new Survey{ Id = 1, ConsumerName = "atish"},}; 

string reply = client.PostAllSurveList(surveys); 

но не работает следующим образом

var surveys = new List<Survey>{ new Survey { Id = 1, ConsumerName = "atish"}}; 

string reply = client.PostAllSurveList(surveys); 

получение ошибки времени компиляции.

Мой вопрос, почему это происходит.

+1

Что такое ошибка компилятора? Вы можете быть полезны в диагностике. –

+0

Какая ошибка вы получаете? – robasta

+0

ConsumeSurveyService.SurveyService.DataGetPostService.PostAllSurveList (Потребляет urveyService.SurveyService.Survey [])»имеет некоторые недопустимые аргументы \t F: \ BS_Intern \ Suvey Web Service \ изыскательских \ ConsumeSurveyService \ Program.cs \t –

ответ

3

Изменить Тип коллекции Используется ссылкой WCF при подключении к нему. Это можно сделать, когда вы создаете или редактируете ссылку. Для вашего удобства прилагается скриншот:

enter image description here

5

Когда вы создаете ссылку на службу WCF, вы можете указать, какой тип будет использоваться для коллекций (независимо от того, как он объявлен на стороне сервера). В вашем случае клиент службы генерируется для использования массивов, а не списков.

Необходимо изменить конфигурацию эталонной службы.

+0

ConsumeSurveyService Если выбрать ... «Generic.List» из панели конфигурации. –

Смежные вопросы