Вызов неоднозначен между следующими методами: Identical.NameSpace.InitializeComponent () и Identical.NameSpace.InitializeComponent ()

Хорошо, я подозреваю, что это может быть вещь Visual Studio, но должна быть какая-то причина для этого. Я создал из списка элементов по умолчанию ListBox (щелкните правой кнопкой мыши на проекте или папке в проекте -> Добавить -> Новый элемент -> Xaml ListBox). Сразу же я получаю красную волнистую линию с ошибкой:

«Ошибка 2 Вызов неоднозначен между следующими методами или свойствами:« Identical.NameSpace.ListBox1.InitializeComponent () »и« Identical.NameSpace.ListBox1.InitializeComponent () »C: \ Documents and Settings \ ouflak \ Мои документы \ Visual Studio 2010 \ Projects \ Identical \ NameSpace \ ListBox1.xaml.cs 27 "

Весь рассматриваемый код генерируется автоматически, и причиной ошибки является конфликт между двумя автоматически генерируемыми файлами: ListBox1.g.cs и ListBox1.designer.cs, гдеpublic void InitializeComponent () объявлен в обоих. Естественно, код не может скомпилироваться при таких обстоятельствах. Достаточно просто удалить ListBox1.designer.cs и двигаться дальше, я полагаю.Но мой вопрос: почему этот код автоматически генерируется с этой ошибкой? Я ожидал бы, что что-нибудь автоматически сгенерированное будет иметь возможность собирать и компилировать без необходимости трогать проект или любой код. Это касается практически любого другого элемента тобокса, который вы можете добавить. Так зачем генерировать этот код со встроенной ошибкой? Должны ли мы найти способ сделать эту работу? Является ли этот код просто предложением, и это зависит от пользователя / разработчика IDE, чтобы выяснить детали?

Вот сгенерированный код: ListBox1.xaml:

< ?xml version="1.0" encoding="utf-8" ? > 
< ListBox
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:xc="http://ns.neurospeech.com/xaml"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    x:Class="Identical.NameSpace.ListBox1"
    >
    <sys:String>Item 1</sys:String>
    <sys:String>Item 2</sys:String>
    <sys:String>Item 3</sys:String>
< /ListBox>

ListBox1.g.cs:

namespace Identical.Namespace
{
    /// <summary>
    /// ListBox1
    /// </summary>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
    public partial class ListBox1 : System.Windows.Controls.ListBox, System.Windows.Markup.IComponentConnector {

        private bool _contentLoaded;

        /// <summary>
        /// InitializeComponent
        /// </summary>
        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
        public void InitializeComponent() {
            if (_contentLoaded) {
            return;
            }
            _contentLoaded = true;
            System.Uri resourceLocater = new System.Uri("/MyProject;component/namespace/listbox1.xaml", System.UriKind.Relative);

            #line 1 "..\..\..\namespace\ListBox1.xaml"
            System.Windows.Application.LoadComponent(this, resourceLocater);

            #line default
            #line hidden
        }

        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
        void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target)     {
        this._contentLoaded = true;
        }
    }
}

ListBox1.designer.cs:

namespace Identical.NameSpace
{
    using System;

    public partial class ListBox1 : System.Windows.Controls.ListBox
    {
        private void InitializeComponent()
        {
            // Pre Statements...
            string string1 = "Item 1";
            string string2 = "Item 2";
            string string3 = "Item 3";
            // Statements...
            this.BeginInit();
            this.Items.Add(string1);
            this.Items.Add(string2);
            this.Items.Add(string3);
            this.EndInit();
            // Post Statements...
        }
    }
}

и, наконец, ListBox1.xaml.cs (изменен только для предотвращения документации XML и предупреждений Stylecop):

namespace Identical.NameSpace
{
    /// <summary>
    /// ListBox1 class
    /// </summary>
    public partial class ListBox1 : ListBox
    {
        /// <summary>
        /// Initializes a new instance of the ListBox1 class
        /// </summary>
        public ListBox1()
        {
            this.InitializeComponent();
        }
    }
}

Вот и все. Это код полностью в своем первоначальном автоматически сгенерированном состоянии, за исключением комментариев, которые я поместил в файл xaml.cs.

Я немного искал этот сайт и Интернет, но никто, кажется, не объяснил это поведение. Я, вероятно, просто удалю код designer.cs и продолжу. Но если кто-нибудь знает, почему это здесь, во-первых, или если это действительно ошибка в Visual Studio 2010 Professional, я бы очень хотел знать.

Ответы на вопрос(9)

Ваш ответ на вопрос