Я создаю простой файл cs с одним классом:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;

namespace Bed
{
    public class TimeoutWebClient : WebClient
    {
        protected override WebRequest GetWebRequest(Uri uri)
        {
            WebRequest w = base.GetWebRequest(uri);
            w.Timeout = 30 * 1000;
            return w;
        }
    }
}

Внезапно моя визуальная студия интерпретировала это как класс формы ... где я ошибся?

VS screen

Вот версии, которые я использую:

Microsoft Visual Studio Ultimate 2013
Версия 12.0.21005.1 REL
Microsoft .NET Framework
Версия 4.5.50938

3
Dmitry 20 Апр 2014 в 14:16

3 ответа

Лучший ответ

Не знаю, как это случилось, но вот как я это исправляю:

  • щелкните проект правой кнопкой мыши и выберите «выгрузить»
  • щелкните проект правой кнопкой мыши и выберите «Редактировать».
  • найти в файле TimeoutWebClient

Я ожидаю, что вы найдете что-то вроде этого:

 <ItemGroup>
    <Compile Include="TimeoutWebClient.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Include="TimeoutWebClient.Designer.cs">
      <DependentUpon>TimeoutWebClient.cs</DependentUpon>
    </Compile>
    <!-- other files go here -->

Удалите тег SubType. Если вы также хотите отменить какие-либо зависимости, удалите также тег <DependentUpon>.

Сохраните файл проекта, щелкните его правой кнопкой мыши и выберите «Обновить».
Убедитесь, что вы достигли того, что вам нужно.

3
rene 20 Апр 2014 в 12:04

Visual Studio интерпретировала его как WebClient по мере того, как вы расширяете этот базовый класс в своем коде. То же самое происходит, когда вы, например, extension Form класс - VS интерпретирует его как форму и отобразит как форму. Тем не менее, это не мешает вашему развитию. Как вы видите на экране печати, вы получаете доступ к коду, щелкнув правой кнопкой мыши и выбрав опцию «Просмотреть код».

1
PiotrWolkowski 20 Апр 2014 в 12:05

Рене описал решение, дополнительная информация:

Только в файле проекта:

<Compile Include="TimeoutWebClient.cs">
  <SubType>Component</SubType>
</Compile>

Вам необходимо удалить тег SubType, чтобы исправить

0
Dmitry 20 Апр 2014 в 21:37