не может создать конструктор без параметров для UserControl - PullRequest
1 голос
/ 21 марта 2012

У меня есть пользовательский веб-элемент управления (файл .ascx), и я хотел бы инициализировать некоторые закрытые члены.Но если я пытаюсь создать конструктор без параметров, например:

<%@ Control Language="C#" ClassName="MyControl" %>

public MyControl() { }

, я получаю сообщение об ошибке:

Тип "ASP.MyControl" уже определяет член с именем "MyControl"те же типы параметров

с исходным файлом, который находится под C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\...

Ответы [ 2 ]

1 голос
/ 27 апреля 2012

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

(Правка: я забыл упомянуть, что мой базовый класс также помеченаннотация)

В базовом классе определите:

public abstract void DoSomethingSpecial();

Базовый класс вызывает это в своем собственном конструкторе:

public MyBaseClass()
{
    DoSomethingSpecial();
}

Затем в пользовательском контроле я наследую базуclass в директивах страницы:

<%@ Control Language="C#" AutoEventWireup="true" Inherits="MyAppNamespace.myBaseClass" ... %>

Последний шаг - фактически реализовать новый метод в usercontrol:

 public override void DoSomethingSpecial()

Это было мое решение.

0 голосов
/ 21 марта 2012

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

private int _myNumber = 19;

protected Page_Load(object sender, EventArgs e)
{
    InitializeMyPrivateProperties();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...