정적 개체 클래스를 디자인하려고합니다. 예를 들어 자동차 모델을 나타내는 것으로 가정합니다. 이것이 내가 시작한 방법입니다.C# 프로젝트에 정적 데이터 추가
public class CarModel
{
internal CarModel(string manufacturer, string modelName, double seconds0To60, double maxMPH)
{
Manufacturer = manufacturer;
ModelName = modelName;
Seconds0To60 = seconds0To60;
MaxMPH = maxMPH;
}
public string Manufacturer { get; private set; }
public string ModelName { get; private set; }
public double Seconds0To60 { get; private set; }
public double MaxMPH { get; private set; }
public override string ToString() { return Manufacturer + " " + ModelName; }
static public readonly CarModel AlfaRomeo_Brera = new CarModel("Alfa Romeo", "Brera 1.75 TBi 3d", 7.5, 146.0);
static public readonly CarModel AlfaRomeo_Giulietta = new CarModel("Alfa Romeo", "Giulietta 1.4 TB Lusso 5d", 9.1, 121.0);
static public readonly CarModel Ford_Focus = new CarModel("Ford", "Focus 2.5 RS 3d", 5.2, 163.0);
static public readonly CarModel Ford_Mondeo = new CarModel("Ford", "Mondeo Saloon 2.0 Zetec 4d", 9.7, 130.0);
static public readonly CarModel Honda_Accord = new CarModel("Honda", "Accord Tourer 2.4 i-VTEC EX 5d (Adas)", 7.6, 138.0);
static public readonly CarModel Honda_Civic = new CarModel("Honda", "Civic Hatchback 1.8 i-VTEC Type S 3d Auto", 10.6, 127.0);
}
위의 6 가지 테스트 모델에서이 접근법이 잘 작동하는 것처럼 보였습니다. 그러나 지금은 약 500 대의 자동차 모델을 입력 할 것으로 보이며 각 자동차 모델에는 많은 특성이 있습니다. 내가 가진 자동차 데이터는 현재 Excel 스프레드 시트에 있습니다. 그래서 질문은 내 dll이 데이터를 추가하는 가장 좋은 방법은 무엇입니까?
가능한 경우 모든 차량 모델을 어셈블리 DLL에 컴파일하고 싶습니다. 그래서 나는 데이터베이스를 사용하지 않기를 바랄 것이다. 몇 가지 동적 enum 게시물에 대해 간략하게 살펴 보았습니다. 자동 코드 생성이 효과가 있을지도 모릅니다. 아니면 데이터를 복사하여 리소스 파일에 붙여 넣을 수 있습니까? 아니면이 정적 데이터가 포함 된 프로젝트에 DataSet 또는 DataTable을 추가 할 수 있습니까?
위의 예제 클래스에서 정적 읽기 전용 속성은 모델 목록에 액세스하는보다 복잡한 방법으로 변경해야한다고 생각합니다.
제안 사항을 알려주십시오. 감사합니다.
봐 :
편집, 여기에 문제를 해결하는 샘플 .TT 파일입니다. 각 자동차에 리소스 문자열을 설정하고 시작할 때 해당 객체를 인스턴스화 할 수 있습니다. –
Excel에서 CSV로 데이터를 내보내고 해당 파일을 리소스로 어셈블리에 추가 할 수 있습니다. 그런 다음 CSV 판독기를 사용하여 리소스에서 런타임에 데이터를로드 할 수 있습니다. – dtb
외부 파일 사용에 동의합니다. 응용 프로그램의 코드를 변경하지 않고도 쉽게 업데이트 할 수 있습니다. – ScruffyDuck