Visual Studio продолжает заменять мое пространство имен пользовательских элементов управления в designer.cs

Я пытаюсь создать пользовательский элемент управления, который наследуется от GridView (используя tut http://msdn.microsoft.com/en-us/library/yhzc935f(v=vs.100).aspx). После каждой сборки Visual Studio продолжает заменять мою ссылку на мое пользовательское пространство имен своим собственным в Default.aspx.designer.cs

protected global::System.Web.UI.WebControls.WebParts.GridViewCustom GridView1;

каждый раз я ставил

protected GridViewCustom.GridViewCustom GridView1;

Зачем?

В Assembly.cs я добавил

using System.Web.UI;
...
[assembly: TagPrefix("GridViewCustom", "GridViewCustom")]

В default.aspx у меня есть:

    <asp:GridViewCustom ID="GridView1" runat="server">
    </asp:GridViewCustom>

Это мой исходный код для элемента управления (исходный файл находится в App_Code):

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace GridViewCustom
{
    [DefaultProperty("Text")]
    [ToolboxData("<{0}:GridViewCustom runat=server></{0}:GridViewCustom>")]
    public class GridViewCustom : System.Web.UI.WebControls.GridView
    {
        [Bindable(true)]
        [Category("Appearance")]
        [DefaultValue("")]
        [Localizable(true)]
        public string Text
        {
            get
            {
                String s = (String)ViewState["Text"];
                return ((s == null) ? String.Empty : s);
            }

            set
            {
                ViewState["Text"] = value;
            }
        }

        protected override void RenderContents(HtmlTextWriter output)
        {
            output.Write(Text);
        }
    }
}

1 ответ

У меня та же проблема. Автогенерируемый файл конструктора предлагает один вариант - удалить объявление из .designer.cs файл и явно объявить его в вашем файле codebehind.

В противном случае вы можете попытаться найти решение, описанное в этом вопросе: Visual Studio 2010 продолжает изменять мой элемент управления winforms.

Обновление: зарегистрировав свои элементы управления глобально в web.config файл, я просто экспериментировал с изменением tagPrefix объявление чего-то уникального, в отличие от существующего префикса, совместно используемого другими пользовательскими элементами управления, и вдруг все в порядке. Странно то, что я больше не вижу объявление в файле конструктора, но оно все еще работает.

Все еще сбивает с толку.

Другие вопросы по тегам