2009-08-31 2 views
146
Server Error in '/' Application. 
-------------------------------------------------------------------------------- 

No parameterless constructor defined for this object. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.MissingMethodException: No parameterless constructor defined for this object. 

Source Error: 


Line 16:    HttpContext.Current.RewritePath(Request.ApplicationPath, false); 
Line 17:    IHttpHandler httpHandler = new MvcHttpHandler(); 
Line 18:    httpHandler.ProcessRequest(HttpContext.Current); 
Line 19:    HttpContext.Current.RewritePath(originalPath, false); 
Line 20:   } 

Я следовал за книгой Стивена Сандерсона «Pro ASP.NET MVC Framework». На стр. 132, в соответствии с рекомендацией автора, я загрузил сборку ASP.NET MVC Futures и добавил ее в мой проект MVC. [Примечание: это может быть красная селедка.]ASP.NET MVC: для данного объекта нет конструктора без параметров

После этого я больше не мог загружать свой проект. Вышеприведенная ошибка остановила меня.

Мой вопрос: не, «Не могли бы вы помочь мне исправить свой код?»

Вместо этого, я хотел бы в более общем узнать:

  • Как я должен решить эту проблему?
  • Что я должен искать?
  • В чем может быть причина?

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

ответ

191

У меня была аналогичная проблема. Такое же исключение возникает, когда Model не имеет конструктора без параметров.

В стеке вызовов был создан метод, отвечающий за создание нового экземпляра модели.

System.Web.Mvc.DefaultModelBinder.CreateModel (ControllerContext controllerContext, ModelBindingContext BindingContext, тип modelType)


Вот пример:

public class MyController : Controller 
{ 
    public ActionResult Action(MyModel model) 
    { 

    } 
} 

public class MyModel 
{ 
    public MyModel(IHelper helper) // MVC cannot call that 
    { 
     // ... 
    } 

    public MyModel() // MVC can call that 
    { 
    } 
} 
+13

Когда POSTing данные JSON к моему действию, я получал аналогичную ошибку. Оказывается, моя модель, к которой он пытается привязываться, не имеет конструктора без параметров! – Tim

+1

NB: У меня есть эта проблема (без параметрического bla bla ...) во время сериализации, если я определяю конструктор, а не произвольный конструктор. Я хочу сказать, что в этом примере, если вы удаляете созданный вами конструктор (общедоступный MyModel (помощник IHelper) {}), проблема исчезает ... поэтому каждый раз, когда вы создаете конструктор, вам нужно создать без параметров ... Я могу понять что: когда вы начинаете определять конструктор, система не рискует создавать «объекты по умолчанию», потому что не знает, имеет ли смысл ... что-то вроде этого. –

+1

Кортежи ... возможно, для некоторых других людей, которые приходят сюда: если у вас есть только Tuples (например, Tuple data;) в вашем классе, сериализация будет в порядке (потому что я столкнулся с этой проблемой во время сериализации JSON) .. но если вы используете что-то вроде List > data; вы начнете с ошибки «no parameterless contructor». Потому что .Net не может/не создавать Tuples (у меня нет ссылок для этого, но Tuple data = new Tuple (); не будет компилироваться ... while Tuple data = new Tuple ("", ""); нормально. –

21

Вам необходимо, чтобы в контроллере не было параметра, соответствующего контроллеру.

Похоже, для комбинации контроллер/действие у вас есть:

public ActionResult Action(int parameter) 
{ 

} 

но вам нужно

public ActionResult Action() 
{ 

} 

Кроме того, проверьте Фил Хаака Route Debugger для устранения маршрутов.

+5

Исключение связано с застройщиком, а не метод действия. –

+4

@Logrythmik. Сообщаемое исключение для конструктора, но проблема заключается в методе действия.У меня был класс и метод действий, которые работали, а затем добавили параметр к методу действий и получили эту ошибку. Альтернативным решением является предоставление значения для параметра. Или сделайте параметр опционным - это должно работать, когда контроллер находится на C#, но это не для меня с F # –

+0

Кроме того, если вы делаете что-то вроде @ Html.Action («SomeAction», новый {myParameter = "42" }), убедитесь, что имя параметра в вашем вызове Html.Action совпадает с именем параметра, определенного в вашем методе действий! –

20

По умолчанию для MVC-контроллеров требуется конструктор по умолчанию без параметров. Простейший бы сделать конструктор по умолчанию, который вызывает один с параметрами:

public MyController() : this(new Helper()) { 
} 

public MyController(IHelper helper) { 
    this.helper = helper; 
} 

Однако, вы можете переопределить эту функцию прокатки вашего собственного ControllerFactory. Таким образом вы можете сообщить MVC, что при создании MyController дайте ему экземпляр Helper.

Это позволяет использовать фреймворки зависимостей с MVC и действительно разделить все. Хорошим примером этого является StructureMap website. Весь быстрый старт хорош, и он привязывается к MVC ближе к «Auto Wiring».

+6

Я не думаю, что это правильный ответ, @swilliams. Ключ здесь - это часть: *, определенная для этого объекта *. Это сообщение об ошибке, которое на самом деле намекает на переданные в INPUT MODEL (s), не может быть создано. Поэтому, если у вас есть модель ввода, у которой нет конструктора без параметров, вы получите эту ошибку. Очень легко было подумать, что это связано с конструктором CONTROLLER. Но это не так. –

6

Я получил ту же ошибку, когда:

Использование пользовательских ModelView, оба действия (GET и POST) проходили через ModelView, который содержал два объекта:

public ActionResult Add(int? categoryID) 
{ 
    ... 
    ProductViewModel productViewModel = new ProductViewModel(
      product, 
      rootCategories 
      ); 
    return View(productViewModel); 
} 

И ПОСТ также принимая тот же вид модели:

[HttpPost] 
[ValidateInput(false)] 
public ActionResult Add(ProductModelView productModelView) 
{...} 

Проблема была View получила видовую (нужен как продукт и список категорий информации), но после того, как представляется возвращал только объект Product, но поскольку POST добавляет, что ProductModelView передал NULL, но тогда только конструктору ProductModelView потребовались два параметра (Product, RootCategories), тогда он попытался найти другой конструктор без параметров для этого случая NULL, а затем с «no parameters ...» "

Итак, установив POST, выполните следующие действия: t роблема:

[HttpPost] 
[ValidateInput(false)] 
public ActionResult Add(Product product) 
{...} 

Надеется, что это может помочь кто-то (я потратил почти полдень, чтобы найти это!).

+0

Нестор, это поучительно и кажется правильным. это представление, возвращающее другой объект, тогда он принимает ving, то есть объект Product, а не ProductViewModel? – GilShalit

+0

О, это было специфично для моего случая, так как мне нужно хранить данные только для продуктов, RootCategories был передан в представление только для распечатки, никаких данных на нем не было, поэтому их значения (RootCategories) не были сохранены в или в другом месте. Должен ли я сохранить тот же ViewModel, который я бы сохранил, используя форму , данные просмотра или что-то еще. – Nestor

+0

GilShalit, сегодня я нашел ответ (извините Im slow!), Посмотрев на HTML-рендеринг, я увидел, что входное имя принимает имя [ObjectName]. [Свойство], но нет следа исходного ViewModel, поэтому вы можете получать только каждый отдельный объект внутри ViewModel, но не полный сам ViewModel. Пример: если ваш ProductViewModel vm имеет внутренние объекты Product p и Category c, то ваш контроллер GET отправляет одну модель vm в представление, тогда вы, контроллер POST, можете принимать только такие параметры, как (Product p, Category c), но не vm. .. если я ошибаюсь, я бы по достоинству оценил некоторые отзывы. – Nestor

7

Первое видео на http://tekpub.com/conferences/mvcconf

47:10 минут в шоу ошибки и показывает, как переопределить ControllerFactory по умолчанию. I.e. для создания фабрики контроллера структуры.

В принципе, вы, вероятно, пытаетесь внедрить инъекцию зависимостей?

Проблема в том, что это зависимость от интерфейса.

+0

И вы можете получить класс StructureMapControllerFactory из проекта MVC Storefront. –

5

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

public class CTX : DbContext { // context with domain models 
    public DbSet<Products> Products { get; set; } // "Products" is the source property 
    public CTX() : base("Entities") {} 
} 

public class BaseModel : CTX { ... } 
public class ProductModel : BaseModel { ... } 
public class OrderIndexModel : OrderModel { ... } 

... и контроллер модели обработки:

[HttpPost] 
[ValidateInput(false)] 
public ActionResult Index(OrderIndexModel order) { ... } 

Ничего особенного, верно? Но тогда я определяю вид ...

<div class="dataItem"> 
    <%=Html.Label("Products")%> 
    <%=Html.Hidden("Products", Model.index)%> // I FORGOT THAT I ALREADY HAVE PROPERTY CALLED "Products" 
    <%=Html.DropDownList("ProductList", Model.products)%> 
    <%=Html.ActionLink("Delete", "D")%> 
</div> 

... который вызывает ошибку «Параметрический конструктор» при запросе POST.

Надеюсь, что это поможет.

15

Эта ошибка также возникает при использовании IDependencyResolver, например при использовании контейнера IoC, и преобразователь зависимости возвращает значение null. В этом случае ASP.NET MVC 3 по умолчанию использует DefaultControllerActivator для создания объекта. Если создаваемый объект не имеет открытого конструктора no-args, исключение будет вызываться в любое время, когда предоставленный зависимый преобразователь возвращает null.

Вот один такой трассировки стека:

[MissingMethodException: No parameterless constructor defined for this object.] 
    System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) +0 
    System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache) +98 
    System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean skipCheckThis, Boolean fillCache) +241 
    System.Activator.CreateInstance(Type type, Boolean nonPublic) +69 
    System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext, Type controllerType) +67 

[InvalidOperationException: An error occurred when trying to create a controller of type 'My.Namespace.MyController'. Make sure that the controller has a parameterless public constructor.] 
    System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext, Type controllerType) +182 
    System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType) +80 
    System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName) +74 
    System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& controller, IControllerFactory& factory) +232 
    System.Web.Mvc.<>c__DisplayClass6.<BeginProcessRequest>b__2() +49 
    System.Web.Mvc.<>c__DisplayClassb`1.<ProcessInApplicationTrust>b__a() +13 
    System.Web.Mvc.SecurityUtil.<GetCallInAppTrustThunk>b__0(Action f) +7 
    System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Action action) +22 
    System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Func`1 func) +124 
    System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state) +98 
    System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext, AsyncCallback callback, Object state) +50 
    System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) +16 
    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8963444 
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184 
+1

Это вызвало мою проблему. Модифицированный зависимый разработчик не смог построить мой контроллер из-за исключения. Он был проглочен резольвером, вернулся нулевым, а среда MVC переключилась на активатор контроллера по умолчанию, что привело к описанной ошибке. – Beriz

+1

Итак, как устранить эту ошибку? – jmona789

83

Это также может быть вызвана, если ваша модель использует SelectList, как это не имеет конструктор без параметров:

public class MyViewModel 
{ 
    public SelectList Contacts { get;set; } 
} 

Вам нужно чтобы реорганизовать вашу модель, чтобы сделать это по-другому, если это причина. Таким образом, используя IEnumerable<Contact> и писать метод расширения, который создает выпадающий список с различными определениями собственности:

public class MyViewModel 
{ 
    public Contact SelectedContact { get;set; } 
    public IEnumerable<Contact> Contacts { get;set; } 
} 

public static MvcHtmlString DropDownListForContacts(this HtmlHelper helper, IEnumerable<Contact> contacts, string name, Contact selectedContact) 
{ 
    // Create a List<SelectListItem>, populate it, return DropDownList(..) 
} 

Или вы можете использовать @Mark и @krilovich подход, просто нужно заменить SelectList на IEnumerable, это работает с MultiSelectList тоже.

public class MyViewModel 
    { 
     public Contact SelectedContact { get;set; } 
     public IEnumerable<SelectListItem> Contacts { get;set; } 
    } 
+1

Я потратил столько времени на это ... и мне пришлось превратить мою вспомогательную функцию, которая возвращала SelectList в один, который возвратил List .... blarg – Mark

+0

ive ломал голову, пока я не нашел this.thanks тонну. –

+0

Вы можете использовать IEnumerable и создать их в своем конструкторе как новый List () – krilovich

4

У меня была эта проблема, и я подумал, что поделюсь, так как я не могу найти свою проблему выше.

Это был мой код

return RedirectToAction("Overview", model.Id);

Вызов этого ActionResult:

public ActionResult Overview(int id)

Я предполагал, что это будет достаточно умен, чтобы понять, что значение прохожу это параметра Я идентификатор для обзора, но это не так. Это зафиксировал его:

return RedirectToAction("Overview", new {id = model.Id});

5

У меня была аналогичная проблема, и в основном дело в том, что есть некоторые аргументы в методе действия, которые не были поставлены в процессе связывания модели, (и другими словами, эти поля не были представлены на странице подачи).

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

Проблема может также быть результатом опечатки, в которой имя аргумента и имя поля формы не будут идентичными.

Решение состоит в том, чтобы 1) убедиться, что имена совпадают 2) предоставить значение по умолчанию для аргумента 3) или предоставить другой метод действия без этого аргумента.

+0

Спасибо @yo hal, ваш ответ оказался тем, кто решил мой конкретный пример этой ошибки. Сообщение об ошибке, которое выкладывает фреймворк, в этом случае является «наименее полезным сообщением об ошибке». –

2

У меня была такая же проблема ...

Если вы используете интерфейс, чтобы разъединить соединение против вашего DbContext (как я), вы можете использовать structuremap.mvc(3 или 4 - nudget пакет) чтобы иметь возможность использовать конструкцию в классе контроллера. Это даст вам папку DependencyResolution. Просто измените прокомментированную строку с помощью поля «<» InterfaceClass>() и используйте < DbContextClass>().

13

Вы можете получить это исключение в разных местах в структуре MVC (например, он не может создать контроллер или не может создать модель для предоставления этого контроллера).

Единственный простой способ, с помощью которого я диагностировал эту проблему, - это переопределить MVC как можно ближе к исключению с вашим собственным кодом. Затем ваш код будет разбит внутри Visual Studio, когда это исключение произойдет, и вы можете прочитать Тип, вызывающий проблему из трассировки стека.

Это похоже на ужасный способ подойти к этой проблеме, но это очень быстро и очень непротиворечиво.

Например, если эта ошибка происходит внутри MVC DefaultModelBinder (который вы будете знать, проверяя трассировки стека), а затем заменить DefaultModelBinder с этим кодом:

public class MyDefaultModelBinder : System.Web.Mvc.DefaultModelBinder 
{ 
    protected override object CreateModel(System.Web.Mvc.ControllerContext controllerContext, System.Web.Mvc.ModelBindingContext bindingContext, Type modelType) 
    { 
     return base.CreateModel(controllerContext, bindingContext, modelType); 
    } 
} 

и обновить Global.asax. CS:

public class MvcApplication : System.Web.HttpApplication 
{ 
... 
    protected void Application_Start(object sender, EventArgs e) 
    { 
     ModelBinders.Binders.DefaultBinder = new MyDefaultModelBinder(); 
    } 
} 

Теперь следующий раз, когда вы получите это исключение, Visual Studio остановится в своем классе MyDefaultModelBinder, и вы можете проверить свойство «modelType», чтобы увидеть, какой тип вызвал проблему.

Приведенный выше пример работает, когда вы получаете исключение «Без параметрического конструктора, определенного для этого объекта» только при привязке модели. Но аналогичный код может быть написан для других точек расширения в MVC (например, для конструкции контроллера).

+0

Вот что я собирался сделать для своей проблемы. –

+0

Жаль, что я мог бы продвигать это больше. Сэкономил мне больше, чем на несколько минут моего времени. – Keith

2

Хотя это может быть очевидным для некоторых, виновником этой ошибки для меня был мой метод MVC, был привязан к модели, которая содержала свойство типа Tuple<>. Tuple<> не имеет конструктора без параметров.

7

У меня такая же ошибка, виновником в моем случае был конструктор, который не был ни общественным, ни частным.

Для этого объекта не существует конструктора без параметров.

Сведения об исключении: System.MissingMethodException: для этого объекта не существует конструктора без параметров.

Код ошибки: убедитесь, что конструктор был открыт до этого.

public class Chuchi() 
{ 
    Chuchi() // The problem is this line. Public is missing 
    { 
     // initialization 
     name="Tom Hanks"; 
    } 

    public string name 
    { 
     get; 
     set; 
    } 
} 
+3

Как примечание, отсутствие модификаторов доступа на конструкторе по умолчанию «внутреннее» в компиляторе. – lsuarez

+0

, помещая туда «частный» модификатор, не решит проблему. – krzyski

4

я получил то же исключение из-за не было без параметров общественного застройщик

Код было так:

public class HomeController : Controller 
{   
    private HomeController() 
    { 
     _repo = new Repository(); 
    } 

изменен

public class HomeController : Controller 
{   
    public HomeController() 
    { 
     _repo = new Repository(); 
    } 

проблема решена для меня ,

+0

У меня была такая же проблема при использовании защищенного конструктора в базовом классе - кажется очевидным решением сейчас! – keithl8041

0

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

Пример:

public class myClass 
    { 
     public string id{ get; set; } 
     public List<string> myList{get; set;} 

     // error happened after I added this 
     public myClass(string id, List<string> lst) 
     { 
      this.id= id; 
      this.myList= lst; 
     } 
    } 

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

public class myClass 
    { 
     public string id{ get; set; } 
     public List<string> myList{get; set;} 

     // error doesn't happen when I add this 
     public myClass() { } 

     // error happened after I added this, but no longer happens after adding above 
     public myClass(string id, List<string> lst) 
     { 
      this.id= id; 
      this.myList= lst; 
     } 
    } 
0

Я добавил DropDownList к моей форме, однако в моем случае это не было (и не был предназначен для), представленных в форме, как это было за пределами <form></form> тегов:

@Html.DropDownList("myField", Model.MyField) 

Поскольку модель содержала поле только для отображения, это также вызвало ошибку No parameterless constructor defined for this object, потому что поле не было отправлено вообще.

В этом случае я установил его, добавляя исключение связывания:

public ActionResult Foo(int id, int? page, [Bind(Exclude = "MyField")]MyModel model) 
0

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

Как указано в других ответах, создание конструктора с параметрами удаляет неявный конструктор без параметров, поэтому вы должны явно ввести его.

В чем была моя проблема: конструктор с параметрами по умолчанию также вызвал это исключение.

дает ошибку:

public CustomerWrapper(CustomerDto customer = null){...} 

Работе:

public CustomerWrapper(CustomerDto customer){...} 
public CustomerWrapper():this(null){} 
-3

Так что я получил это сообщение перед тем, как хорошо, когда делает вызов Ajax. Так что в основном он запрашивает конструктор в том классе модели, который вызывается контоллером, не имеет никакого параметра.

Вот пример

public class MyClass{ 

    public MyClass(){} // so here would be your parameterless constructor 

} 
+0

Я удалил конструктор по умолчанию из модели, это работает для меня. –

0

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

2

Все ответы говорят о создании конструктора с меньшими параметрами, который не идеален, если вы не хотите, чтобы его использовали другие разработчики и только связующее устройство.

Атрибут [Obsolete("For model binding only", true)] над открытым конструктором будет вызывать ошибку компилятора, если другой разработчик попытается использовать это. Взял меня, чтобы найти это, надеюсь, что это поможет кому-то.

+0

Совершенно - добавление этого атрибута позволило привязке модели MVC работать во время выполнения и установке логического параметра атрибута в значение true предотвращено (во время компиляции) попыткой создать экземпляр конструктора без параметров. Лучший ответ здесь. –

0

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

+0

Если у вас есть новый вопрос, разместите его как таковой. Это должен был быть комментарий или новый вопрос, поскольку он не пытается ответить на проблему. –

0

У меня была такая же проблема, но позже было найдено, что добавление любого нового интерфейса и соответствующего класса требует его регистрации в Initializable Module для инъекции зависимостей. В моем случае это было в коде следующим образом:

[InitializableModule] 
[ModuleDependency(typeof(EPiServer.Web.InitializationModule))] 
public class DependencyResolverInitialization : IConfigurableModule 
{ 

    public void ConfigureContainer(ServiceConfigurationContext context) 
    { 
     context.Container.Configure(ConfigureContainer); 
     var structureMapDependencyResolver = new StructureMapDependencyResolver(context.Container); 
     DependencyResolver.SetResolver(structureMapDependencyResolver); 
     GlobalConfiguration.Configuration.Services.Replace(typeof(IHttpControllerActivator), structureMapDependencyResolver); 
    } 

    private void ConfigureContainer(ConfigurationExpression container) 
    { 
     container.For<IAppSettingService>().Use<AppSettingService>(); 
     container.For<ISiteSettingService>().Use<SiteSettingService>(); 
     container.For<IBreadcrumbBuilder>().Use<BreadcrumbBuilder>(); 
     container.For<IFilterContentService>().Use<FilterContentService>().Singleton(); 
     container.For<IDependecyFactoryResolver>().Use<DependecyFactoryResolver>(); 
     container.For<IUserService>().Use<UserService>(); 
     container.For<IGalleryVmFactory>().Use<GalleryVmFactory>(); 
     container.For<ILanguageService>().Use<LanguageService>(); 
     container.For<ILanguageBranchRepository>().Use<LanguageBranchRepository>(); 
     container.For<ICacheService>().Use<CacheService>(); 
     container.For<ISearchService>().Use<SearchService>(); 
     container.For<IReflectionService>().Use<ReflectionService>(); 
     container.For<ILocalizationService>().Use<LocalizationService>(); 
     container.For<IBookingFormService>().Use<BookingFormService>(); 
     container.For<IGeoService>().Use<GeoService>(); 
     container.For<ILocationService>().Use<LocationService>(); 
     RegisterEnterpriseAPIClient(container); 
    } 

    public void Initialize(InitializationEngine context) 
    { 
    } 

    public void Uninitialize(InitializationEngine context) 
    { 
    } 

    public void Preload(string[] parameters) 
    { 
    } 
} 

}

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