2013-11-26 4 views
0

Я получаю «Исключение System.TypeLoadException», которое происходит в System.Windows.Forms.dll. Вот оставшаяся часть сообщения об ошибке. .System.TypeLoadException в System.Windows.Forms.dll

Additional information: Could not load type 'DataTeamMailerCSharp.NewReport' from assembly 'DataTeamMailerCSharp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' because the method '.ctor' has no implementation (no RVA).

Вот класс это происходит в

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace DataTeamMailerCSharp 
{ 
    static class Program 
    { 
     /// <summary> 
     /// The main entry point for the application. 
     /// </summary> 
     [STAThread] 
     static void Main() 
     { 
      Application.EnableVisualStyles(); 
      Application.SetCompatibleTextRenderingDefault(false); 
      Application.Run(new mainGUI()); 
     } 
    } 
} 

Ошибка встречающийся здесь:

Application.Run(new mainGUI()); 

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

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace DataTeamMailerCSharp 
{ 
    [Serializable] class NewPerson 
    { 
     public string personName { get; set; } 
     public string personEmail { get; set; } 
     public string personReports { get; set; } 

     public NewPerson(string name, string email, string reports) 
     { 
      personName = name; 
      personEmail = email; 
      personReports = reports; 
     } 

     private extern NewPerson(); 
    } 
} 

Может быть быть private extern NewPerson();, что является причиной этого сейчас?

+3

Ошибка на самом деле не выбрасывается из того места, где вы указываете, но на самом деле, возможно, вместо mainGUI. Это отношение к сторонней сборке, которую вы используете/вызываете под названием DataTeamMailerCSharp, и проблема лежит там и как вы пытаетесь ее использовать. –

+0

Можете ли вы показать нам реализацию 'DataTeamMailerCSharp.NewReport'? –

+0

Здесь NewPerson, конструкторы почти одинаковы в стороне от параметров. – William

ответ

5

Когда вы сериализуете/десериализуете с помощью XmlSerializer, вам НЕОБХОДИМО публичный конструктор по умолчанию без параметров. Добавить один ...

namespace DataTeamMailerCSharp 
{ 
    [Serializable] 
    public class NewPerson 
    { 
     public string personName { get; set; } 
     public string personEmail { get; set; } 
     public string personReports { get; set; } 

     public NewPerson(string name, string email, string reports) 
     { 
      personName = name; 
      personEmail = email; 
      personReports = reports; 
     } 

     public NewPerson() { } // for serialization 

     // private extern NewPerson(); -- not needed 
    } 
} 
+0

Спасибо! Это разрешило эту проблему, а теперь и на следующую. У меня больше фона VB, чем у C#, и я нахожу, что это намного больше ... особенно. Я очень ценю это. – William

+0

@William - В любое время! –

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