tengo una molestia que se viene produciendo desde hace bastante tiempo con Visual Studio 2010. Tengo un archivo de clase que he hecho lo que ahorra VS como tipo "Componente" por ninguna razón Puedo discernir Si lo olvido y trato de abrir el archivo, busca un diseñador que no existe.VS 2010 estableciendo archivo de clase no GUI como Componente
He buscado en Google y he encontrado algunos problemas similares para VS 2005, pero los problemas parecían estar relacionados con la derivación de las clases de componentes de la GUI (listbox, combobox, etc.). Esta clase no hace eso.
El archivo es GpsUtilities.cs. Aparece en el archivo csproj de la siguiente manera, con SubType
de Component
. No existen otras referencias al archivo, es decir, nada lo reclama como DependentUpon
.
<Compile Include="Utilities\GpsUtilities.cs">
<SubType>Component</SubType>
</Compile>
Incluso si quito la etiqueta SubType
, e incluso si lo establezca explícitamente en lugar de Code
Component
, todavía guarda como SubType
de Component
.
Aquí está la estructura de clases (todo el código quitó). Como dije, no hereda, ni siquiera importa el espacio de nombres de, cualquier cosa relacionada con la 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; }
}
}
Gracias de antemano.
no responde directamente a su pregunta, pero se puede hacer VS abrir el código por defecto para todo. Haga clic con el botón derecho en el archivo, abra con, seleccione "editor de código fuente" (¡no con la codificación!), Y haga clic en "Establecer como predeterminado" antes de cerrar el cuadro de diálogo. –
De hecho, hice algo similar a eso para abrir archivos XAML como solo XML. Quería algo un poco más limpio para esto, así que lo que Kent dijo a continuación era lo mejor, pero gracias por su aporte. – dythim