У меня есть раздражение, которое происходит в течение довольно долгого времени с Visual Studio 2010. У меня есть созданный файл класса, который VS сохраняет как тип "Компонент" без какой-либо причины, которую я могу различить.Если я забываю и пытаюсь открыть файл, он ищет дизайнера, которого не существует.
Я посмотрел в Google и обнаружил некоторые похожие проблемы для VS 2005, но проблемы, похоже, были связаны с производными от классов компонентов GUI (listbox, combobox и т. Д.).Этот класс этого не делает.
Файл GpsUtilities.cs .В файле csproj он выглядит следующим образом: SubType
из Component
.Других ссылок на файл не существует, т. Е. Ничто не объявляет его как DependentUpon
.
<Compile Include="Utilities\GpsUtilities.cs">
<SubType>Component</SubType>
</Compile>
Даже если я удалю тег SubType
и даже если я явно установлю его на Code
вместо Component
, он все еще сохраняет его как SubType
из Component
.
Вот структура класса (весь код удален).Как я уже сказал, он не наследует и даже не импортирует пространство имен чего-либо, связанного с GUI.
using System;
using System.ComponentModel;
using System.IO.Ports;
using System.Text.RegularExpressions;
using System.Timers;
using System.Xml.Serialization;
namespace AppNamespace
{
public class GpsUtil : INotifyPropertyChanged
{
public GpsUtil() { }
public static GpsUtil CreateInstance() { }
public bool IsGpsReady { get; }
public GPSPort GpsSerialPort { get; private set; }
public Timer GpsTimer { get; set; }
private CircularArray<GpsPositionData> PositionBuffer { get; set; }
private GpsPositionData m_GpsCurLoc;
public GpsPositionData MyLocation { }
public string GpggaPattern { get; set; }
public Regex GpggaRegEx { get; set; }
public GpsPositionData GpsPosDataFromRegExMatch(Match gpsRegExMatch) { }
public void SetGpsPosition(double latitude, double longitude) { }
private void gpsTimer_Elapsed(object sender, ElapsedEventArgs e) { }
private bool InitializeGpsPort() { }
public bool TestGpsPort() { }
public double ComputeSquaredDistance(double startLat, double startLon, double endLat, double endLon) { }
public event PropertyChangedEventHandler PropertyChanged;
}
public class GPSPort : SerialPort
{
public GPSPort(string portName, int baudRate = 9600) : base(portName, baudRate)
{
}
private bool TestResult { get; set; }
public bool Test(int interval = 3000, bool leavePortOpen = false) {}
}
public enum GpsFixQuality { Invalid = 0, GpsFix = 1, DgpsFix = 2 }
[Serializable]
public class GpsPositionData
{
public GpsPositionData() { }
public GpsPositionData(double latitude, double longitude) {}
public override string ToString() {}
public bool IsCloseTo(GpsPositionData otherPoint, double tolerance = 0.0001) {}
public GpsPositionData(DateTime time, double latitude, double longitude, GpsFixQuality fixQuality, int numberOfSatellites, double hdop, double altitude, double geodialSeparation, int ageOfDgps, string dgpsRefStationId){}
[XmlIgnore]
public DateTime Time { get; private set; }
[XmlElement("Latitude", typeof(double))]
public double Latitude { get; set; }
[XmlElement("Longitude", typeof(double))]
public double Longitude { get; set; }
[XmlIgnore]
public GpsFixQuality FixQuality { get; private set; }
[XmlIgnore]
public int NumberOfSatellites { get; private set; }
[XmlIgnore]
public double Hdop { get; private set; }
[XmlIgnore]
public double Altitude { get; private set; }
[XmlIgnore]
public double GeodialSeparation { get; private set; }
[XmlIgnore]
public int AgeOfDgps { get; private set; }
[XmlIgnore]
public string DgpsRefStationId { get; private set; }
}
}
Заранее спасибо.