2009-06-25 2 views
0

Исправлено, так как я получил некоторую ненужную помощь при создании ошибок в виде Visual Studio 2008, добавляющих неверный код в файл .designer.cs. Я ценю, это, вероятно, делает это из-за моего упущения или ошибки - но я буду использовать оправдание тому, что я на самом деле являюсь разработчиком ASP.NET, так что я все еще участвую.Файл Designer.cs автоматически создает ошибки

Соответствующие части решения Exporer выглядеть следующим образом:

/Prototypes 
    /Project01.Master 
    - Project01.Master.cs 
    - Project01.Master.designer.cs 
    /SampleApplication.aspx 
    - SampleApplication.aspx.cs 
    - SampleApplication.aspx.designer.cs 

Я не совсем уверен, какие файлы включить в этот вопрос, так что я буду стараться угадать, насколько я могу. Оба .Master.cs и SampleApplication.aspx.cs включают себя в пространство имен Project01.Prototypes (хотя я не ценен об этом, это то, что было добавлено автоматически и работало, в то время как мне не нужно было об этом думать) ,

В верхней части SampleApplication.aspx является следующее (для обеспечения доступа к некоторым свойствам, что мастер-страница в теории, разоблачение

<%@ Page Language="C#" MasterPageFile="~/Prototypes/Project01.Master" AutoEventWireup="true" CodeBehind="SampleApplication.aspx.cs" Inherits="Project01.Prototypes.SampleApplication" %> 
<%@ MasterType VirtualPath="~/Prototypes/Project01.Master" %> 

В SampleApplication.aspx.designer.cs является:.

namespace Project01.Prototypes { 

    public partial class SampleApplication { 

    public new Project01.Prototypes.Project01 Master { 
     get { 
     return ((Project01.Prototypes.Project01)(base.Master)); 
     } 
    } 
    } 
} 

Все это приводит к ошибке:

The type name 'Prototypes' does not exist in the type 'Project01.Prototypes.Project01' 

я могу исправить эту ошибку и снова создайте сборку, избавившись от ссылок «Project01.Prototypes.» внутри самого класса (оставив пространство имен). Моя проблема заключается в том, что это лишь временное решение, так как Visual Studio продолжает добавлять его обратно - так что, я думаю, вопрос в том, где моя ошибка на самом деле находится?

p.s. Если это важно, я работаю в Visual Studio 2008 с помощью веб-приложения ASP.NET MVC.

ответ

6

Проблема заключается в том, что ваше пространство имен верхнего уровня и класс главной страницы имеют одинаковое имя. Поэтому, когда компилятор пытается разрешить тип, он ищет тип «Prototypes.Project01» внутри вашего класса главной страницы.

I будет рекомендовать использовать свойство typename в директиве mastertype вместо virtualpath, но синтаксический анализатор, похоже, задыхается, когда вы используете там квалифицированное имя типа. Так что, как я вижу, у вас есть две альтернативы:

  1. Переименуйте свою главную страницу. Использование названия проекта похоже на то, что это может вызвать путаницу.
  2. Не используйте директиву mastertype и объявляйте свойство Master в файле codebehind вручную.
+0

У меня было немного беспорядка и теперь переименован в главный файл Project01Theme, изменились ссылки и т. Д. И теперь все его компиляция хорошо - включая строки, которые ранее требовали изменения. Я вижу недостаток в том, что я делаю сейчас, - рад, что я разместил этот вопрос, хотя, возможно, я был в поиске его! – Amadiere

-2

Вы пытались закрыть VS 2008, а затем снова открыть свой проект? Это нормально для меня.

+0

Это не работает для меня, так как этот вопрос является результатом нескольких дней разочарования между ними, и я полностью отключил свой компьютер. Проблема с моей стороны заключается в том, что я не знаю, что именно является кодом для возврата/изменения, поскольку это происходит нечасто. – Amadiere

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