public struct MyStruct
{
public string Name;
public long size;
}
Проблема при передачи массива структур [C# .NET WSS]
Помогите возникла проблема при передачи массива структур в функцию на web-сервисе.
Есть web-сервис где объявляется структура
Код:
и там же есть функция которая принимает массив этих структур,
Код:
public String rec_ms(MyStruct[] my_struct)
и есть программа на которой создается массив тех структур что лежат на сервисе
Код:
public MyStruct[] ms = new *MyStruct[5];
при любой попытке записать в структуру данные
Код:
ms[0].Name = "";
возникает ошибка "Object reference not set to an instance of an object.".
Если я дублирую структуру, т.е. объявляю её в программе все отрабатывает но ошибка происходит при вызове функции rec_ms().
Ругается на то что структуры разные.
Кто нибудь знает как можно решить эту задачу, или какой нибудь другой способ отправить массив структур в сервис?
ЗЫ: думаю, звёздочка в строке
Цитата:
public MyStruct[] ms = new *MyStruct[5];
это всего лишь опечатка?
Код:
public MyStruct[] ms = new MyStruct[5];
Вот код как я использую:
Код:
namespace MyProject
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// объявляю массив структур
public MyStruct[] ms = new MyStruct[5];
private void button1_Click(object sender, EventArgs e)
{
ms[0].Name = ""; // вот здесь и вылетает ошибка "Object reference not set to an instance of an object"
}
}
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// объявляю массив структур
public MyStruct[] ms = new MyStruct[5];
private void button1_Click(object sender, EventArgs e)
{
ms[0].Name = ""; // вот здесь и вылетает ошибка "Object reference not set to an instance of an object"
}
}
пробывал и так:
Код:
namespace MyProject
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// объявляю массив структур
public MyStruct[] ms;
private void button1_Click(object sender, EventArgs e)
{
ms = new MyStruct[5];
ms[0].Name = ""; // вот здесь и вылетает ошибка "Object reference not set to an instance of an object"
}
}
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// объявляю массив структур
public MyStruct[] ms;
private void button1_Click(object sender, EventArgs e)
{
ms = new MyStruct[5];
ms[0].Name = ""; // вот здесь и вылетает ошибка "Object reference not set to an instance of an object"
}
}
и так:
Код:
namespace MyProject
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
MyStruct[] ms = new MyStruct[5];
ms[0].Name = ""; // вот здесь и вылетает ошибка "Object reference not set to an instance of an object"
}
}
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
MyStruct[] ms = new MyStruct[5];
ms[0].Name = ""; // вот здесь и вылетает ошибка "Object reference not set to an instance of an object"
}
}
Мне кажется надо как то инициализировать члены структуры name и size.
Вроде бы массив инициализирую до использования.
Может VS 2008 требует дополнительных настроек для использования структур WEB-сервиса? но хотя работает все отлично без массива. А вот с массивом все плохо.
PS ошибка вылетает в ходе выполнения программы.
Возможно стоит выложить весь проект.
Код:
MyStruct[] ms = new MyStruct[5];
ms[0] = new MyStruct();
ms[0].Name = "";
ms[0] = new MyStruct();
ms[0].Name = "";
Да структура объявлена на web-сервисе.
Ваш метод инициализации действительно отлично работает!!!
Код:
MyStruct[] ms = new MyStruct[5];
ms[0] = new MyStruct();
ms[0].Name = "";
ms[0] = new MyStruct();
ms[0].Name = "";