0
현재 ASP.NET 4.0 웹 응용 프로그램을 일반 IIS와 Azure에서 모두 실행하도록 리팩토링하고 있습니다. 설정 (Properties
네임 스페이스)에서는 AzureSettingsState
및 StandaloneSettingsState
으로 State Pattern을 구현하고 싶습니다. 둘 다 설정 getter 메서드를 제공합니다.ASP.NET 웹 응용 프로그램 하늘색 설정
이제는 아무도 ASP.NET이 비 문자열 값 (예 : TimeSpan
또는 StringCollection
)을 deserialize하는 방법을 파악하여 상황에 맞는 클래스로 직접 deserialize 할 수 있습니까? 모든 설정은 문자열로 보입니다. 그것을 사용하는 푸른에게 잊지 마세요 D
public class AzureConfig:StandaloneConfig
{
protected override string GetAppSetting(string name)
{
return RoleEnvironment.GetConfigurationSettingValue(name);
}
protected override string GetConnectionString(string name)
{
return RoleEnvironment.GetConfigurationSettingValue(name);
}
}
public class StandaloneConfig
{
public IndexedSetting AppSettings { get; private set; }
public IndexedSetting ConnectionStrings { get; private set; }
public StandaloneConfig()
{
AppSettings = new IndexedSetting(GetAppSetting);
ConnectionStrings = new IndexedSetting(GetConnectionString);
}
protected virtual String GetAppSetting(String name)
{
return ConfigurationManager.AppSettings[name];
}
protected virtual String GetConnectionString(String name)
{
var cs = ConfigurationManager.ConnectionStrings[name];
if (cs != null)
return cs.ConnectionString;
else
return null;
}
public class IndexedSetting
{
Func<String, String> _getParameter;
public IndexedSetting(Func<String,String> getParameter)
{
_getParameter = getParameter;
}
public String this[String name]
{
get { return _getParameter(name); }
}
}
:
public abstract class ConfigStateBase
{
public abstract string GetSettingValue(string setting);
}