#c# #list #web-services #datagridview
#c# #Список #веб-сервисы #datagridview
Вопрос:
Я пытаюсь разрешить пользователю передавать несколько документов в веб-методы веб-службы. Я могу передать один документ, но я не знаю лучшего способа передать более одного документа.
- Пользователь может легко ввести один документ с его деталями.
- Я создал один и тот же объект со списком, чтобы позволить пользователю передавать неограниченное количество документов
- Я могу создать больше, чем object для нескольких документов, но я предпочитаю создавать его динамически, а не ограничивать его определенным количеством документов
- Детали документа будут просмотрены в gridview, но когда я передаю переменную object в объект array веб-метода, он показывает, что «не может неявно преобразовать тип списка в object.
//Object of the document in the web service
Document doc = new Document();
doc.DocCode = docCode.Text;
doc.DocName = docname.Text;
doc.DocLocation= docloc.Text;
//the above doc object will be passed to array of document in web service
service.Documents = new Document[]
{
doc
};
//Another tried Way but i want the user to pass multiple details of document at the same time
List<Document> docs = new List<Document>();
docs.Add(New Document() {DocCode=docCode.Text, DocName = docname.Text, DocLocation = docloc.Text});
//To enable the user to check the details entered before passing to the web method
gridview1.DataSource = docs;
gridview.DataBind();
foreach (DataGridItem row in gridview1.Rows)
{
docs.ToArray();
}
//Showing an error than cant implicitly convert from list type to Document
service.Documents = new Document[]
{
docs
};
Детали документа будут введены пользователем с помощью текстовых полей и будут просмотрены в gridview. Затем все строки gridveiws будут переданы в объект array документа.
Ответ №1:
Я понимаю, что вы хотите ввести массив документов в эксплуатацию.Документы. Вы получили сообщение об ошибке, потому что вы можете поместить туда элементы, подобные этому:
service.Documents = new Document[]
{
doc, doc
};
Но вы не можете поместить туда объект array.
Попробуйте что-то вроде этого:
service.Documents = docs.ToArray();
Комментарии:
1. Я не хочу создавать много объектов, подобных этому: ` service. Documents = new Document [] { doc1, doc2, doc3}; ` Я хочу использовать службу list list, подобную следующей `. Documents = новый документ [] { docs}; ` но я получаю сообщение об ошибке, что вы не можете неявно преобразовать тип list в object