Ошибка сборки .NET Visual Studio «существует еще одно частичное объявление этого типа»

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

Я обнаружил, что мне нужно откомпилировать предварительно скомпилированный веб-сайт / приложение .NET. Reflection удалось получить мне необходимый мне файл кода C #, и я потратил немало времени, изменив все ссылки .aspx с таких вещей:

<%@ page language="C#" autoeventwireup="true" inherits="someclassname, App_Web_Z8sdf" %>

на такие:

<%@ page language="C#" autoeventwireup="true" CodeFile="somefilename.aspx.cs" inherits="someclassname" %>

и переместив файлы aspx.cs в в том же каталоге, что и файлы .aspx.

Это привело меня к тому моменту, когда я действительно мог загрузить проект в несколько редактируемой форме в Visual Studio. Я пробовал это и с 2010, и с 2008 годом.

Однако сейчас я пытаюсь построить этот проект. Я получаю следующее сообщение об ошибке:

"Missing partial modifier on declaration of type 'someclassname'; another partial declaration of this type exists"

Достаточно честно. Я понимаю, что классы могут быть объявлены в нескольких местах, и каждый должен иметь ключевое слово "partial", чтобы это работало. Поэтому я добавляю ключевое слово partial к определению класса в файле aspx.cs, в котором возникает ошибка. Это удалось избавиться от этого сообщения об ошибке и заменить его на

"The type 'someclassname' already contains a definition for 'some variable name".

. Очевидно, что это ведет себя так, как будто где-то есть другое определение класса. Будучи в основном администратором unix, я начинаю искать во всех файлах проекта строки, соответствующие имени рассматриваемого класса, и нахожу его ровно в двух файлах и только в двух файлах. Файл aspx, содержащий первые цитированные мною строки, и соответствующий ему файл aspx.cs, содержащий определение класса. Теперь я запутался.

Я прочитал несколько сообщений на форуме, в которых указано, что Visual Studio будет создавать файлы «дизайнеров» с частичными классами в них, что казалось многообещающим, но я не вижу этих файлов дизайнера, даже когда я просматривать все файлы в VS, когда я смотрю на каталог на диске или где-нибудь еще. Ясно, что я чего-то упускаю. Возможно, я неправильно сделал воссоздание с предварительно скомпилированного сайта? Может быть, есть какие-то настройки в web.config или другом файле, которые мне нужно изменить?

Любая помощь будет принята с благодарностью.

По запросу обобщенная версия определения someclass

    using System;
    using System.Web;
    using System.Web.Profile;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;

    public class Some_Class_Name : Page, IRequiresSessionState
    {
        /// a bunch of variables defined like this
        protected HtmlForm form1;

       ///a bunch of protected methods defined similarly to this

        protected void LinkButtonReturn_Click(object sender, EventArgs e)
        {
            this.Session.Clear();
            base.Response.Redirect("Default.aspx");
        }

}

Обновление Похоже, это результат преобразования предварительно скомпилированного сайта обратно в исходный код. Файлы .aspx.cs содержат определения управляющих полей (если это правильная терминология для того, что я наивно назвал бы «определениями переменных»), которых они не должны, и не имеют частичного объявления, которое они должны иметь. Дико рассуждая, кажется, что определения на самом деле подразумеваются файлом aspx, и поэтому файлу aspx.cs они не нужны. Большое спасибо Дэну Абрамову и всем, кто оставил комментарий.

5
задан malcolmpdx 28 July 2011 в 18:27
поделиться