Ошибка C# "Инициализатор типа для … выдала исключение

Это зависит от того, что Вы пытаетесь сделать с XML-файлами. Если Вы просто пытаетесь считать XML-файл (как конфигурационный файл), Злая Блоха корректна в предложении SimpleXML, так как это создает, какие суммы к вложенному ArrayObjects., например, значению будут доступны $xml-> корень-> ребенок.

, Если Вы надеетесь управлять XML-файлами, Вы являетесь, вероятно, лучшими от использования DOM XML

34
задан Peter Mortensen 24 July 2015 в 13:18
поделиться

3 ответа

Я пробовал ваш код:

CheckedListBox cb = new CheckedListBox();
for (var i = 1; i < 11; i++)
  cb.Items.Add("Item " + i, i % 3 == 0);

string fmt = RHelper.FormatQuery(cb);
Console.WriteLine(fmt);
Console.ReadLine();

Он выдал исключение в этой строке:

foreach (DataRowView item in chekedListBox.CheckedItems)

// Unable to cast object of type 'System.String' to type 'System.Data.DataRowView'.

Возможно, вы тоже столкнулись с такой же проблемой. Вместо преобразования в DataRowView попробуйте внести следующие изменения:

foreach (var item in chekedListBox.CheckedItems)
{
    ID = ID + item.ToString(); // item["" + FieldName + ""];

Поскольку элементы в CheckedListBox имеют тип объект .

4
ответ дан 27 November 2019 в 16:23
поделиться

Исключение инициализатора типа указывает, что тип не может быть создан. Обычно это происходит прямо перед вызовом вашего метода, когда вы просто ссылаетесь на этот класс.

Является ли код, который у вас здесь, полный текст вашего типа? Я бы искал что-то вроде задания на провал. Я часто вижу это, получая настройки приложения и тому подобное.

static class RHelper
{
     //If this line of code failed, you'd get this error
     static string mySetting = Settings.MySetting;
} 

Вы также можете увидеть это с помощью статических конструкторов для типов.

В любом случае, есть ли что-то еще в этом классе?

61
ответ дан 27 November 2019 в 16:23
поделиться

Я закодировал этот пример, используя только один HTTP GET, с Indy 10, надеюсь, он также работает с Indy 9:

uses
  {...} IdHTTP, IdComponent;

type
  TFormMain = class(TForm)
    {...}
  private
    {...}
    procedure HttpWork(ASender: TObject; AWorkMode: TWorkMode; AWorkCount: Int64);
  end;
{...}

procedure TFormMain.Button1Click(Sender: TObject);
var
  Http: TIdHTTP;
  MS: TMemoryStream;
begin
  Http := TIdHTTP.Create(nil);
  try
    MS := TMemoryStream.Create;
    try
      Http.OnWork:= HttpWork;

      Http.Get('http://live.sysinternals.com/ADExplorer.exe', MS);
      MS.SaveToFile('C:\ADExplorer.exe');

    finally
      MS.Free;
    end;
  finally
    Http.Free;
  end;
end;

procedure TFormMain.HttpWork(ASender: TObject; AWorkMode: TWorkMode; AWorkCount: Int64);
var
  Http: TIdHTTP;
  ContentLength: Int64;
  Percent: Integer;
begin
  Http := TIdHTTP(ASender);
  ContentLength := Http.Response.ContentLength;

  if (Pos('chunked', LowerCase(Http.Response.TransferEncoding)) = 0) and
     (ContentLength > 0) then
  begin
    Percent := 100*AWorkCount div ContentLength;

    MemoOutput.Lines.Add(IntToStr(Percent));
  end;
end;
-121--2470094-

Кевин правильный ответ о пакетах.

Специальные шаги Heres Netbeans для добавления нового пакета:

  1. В представлении «Projects» перейдите к родительскому пакету в разделе «Source Packages».
  2. Щелкните правой кнопкой мыши по пакету и выберите New > Java Package (если пакет Java не отображается в списке, выберите Other... а затем выберите Java > Пакет Java)
  3. Заполните мастер создания пакета Java именем дочернего пакета
-121--4667639-

При наличии веб-служб проверьте URL-адрес , указывающий на службу. У меня была проблема с симуляцией, которая была исправлена, когда я изменил свой URL-адрес веб-службы.

1
ответ дан 27 November 2019 в 16:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: