2012-09-21 4 views
2

저장 프로 시저 이름, 사용자 메시지 및 기타와 같은 응용 프로그램 수준에서 갖고 싶은 상수가 있습니다. 내가이 자원들을 결코 바꿀 기회가 아주 적다.리소스 사전 Vs .cs 파일

응용 프로그램에서 상수를 유지하는 것이 바람직한 지 알려주십시오.

리소스 사전이 .cs 파일보다 좋습니다.

감사합니다 우선 들어 AA

답변

3

, 당신은이 모든 것들에 대해 생각 올바른 궤도에있어. 매직 문자열 및 기타 마법 값은 여러 가지 이유로 좋지 않습니다.

  1. 상수 만 REAL-WORLD의 일정 것들에 대한 허용됩니다

    여기에 우리가 사용하는 몇 가지 지침입니다. "내 보니가 {0}을 (를) 넘는 형식 문자열로 사용해야하는 경우 리소스를 사용합니다.

  2. 변경 될 수있는 사항은 항상 상수가 아닙니다. 이 물건에 대한 몇 가지 옵션이 있습니다.
  3. 로직에 포함되어 있지 않으면 소스 코드에 포함되지 않습니다. 다음 외부 위치 중 하나에 들어가서 소스 코드에서 참조를 얻으므로 변경을 위해 다시 컴파일 할 필요가 없습니다.

일반적으로 어셈블리 당 세 개의 파일이 필요합니다. 먼저 상수 파일. 보통 Constants.cs처럼 간단합니다. 이 파일에서 상수 (그리고 컴파일 타임 상수가 아니고 변경되지 않는 읽기 전용 정적)를 넣으십시오. 구성 가능한 항목을 포함 할 수도 있지만 기본값을 가져야합니다.

internal class Constants 
{ 
    public const LogLevel DEFAULT_LOG_LEVEL = LogLevel.Error; 

    public static readonly string APP_NAME = Configuration.ApplicationName ?? "Test Application"; 
} 

두 번째로 구성 값을 읽고 정적 값으로 반환하는 파일입니다. 일반적으로 Configuration.cs이며 모든 구성 값을 반환합니다. 이렇게하면 연결 문자열을 변경하거나 설정을 처리하거나 다른 것을 재 컴파일하지 않아도됩니다. 실제 값은 .ini 파일, web.config 또는 app.config, 데이터베이스 테이블 또는 소스 코드 외부의 다른 위치와 같은 위치에 있습니다. 다음 예를 통해 코드 전체에서 ConfigurationManager.AppSettings [ "ApplicationName"]을 흩 뜨릴 수는 있지만 그 appsetting의 키를 변경하려면 어떻게해야합니까? 당신은 그것을 참조하는 모든 이름을 찾아야한다. 이 30 초를 추가로 수행하면됩니다. 모든 Configuration.ApplicationName.

internal class Configuration 
{ 
    public static string ApplicationName 
    { 
     get 
     { 
      return ConfigurationManager.AppSettings["ApplicationName"]; 
     } 
    } 
} 

마지막으로, 하나 이상의 리소스 파일. 여기에 우리는 아이콘, 이미지, 비정상적인 글꼴, 표시 목적을 위해 현지화 된 (또는 그냥 변경 가능) 문자열 등을 넣는 곳입니다 ...

이 작업을 수행하는 특정 올바른 방법은 없지만 위의 사항은 시작할 곳을 알려주세요.