나는 우리 데이터베이스에서 문자열을 반환하는 사용자 지정 리소스 공급자를 만들었습니다.ResourceProviderFlory 정기적 새로 고침
문제는이 항목의 캐시를 "파열"하고 데이터베이스에서 다시로드하는 방법을 찾지 못했기 때문입니다. 이상적으로는 매 x 분마다 또는 수동으로 캐시를 업데이트하고 다시로드하려는 경우이 작업을 수동으로 수행합니다.
기술적으로 쉽습니다. 나는 해시 테이블에 모든 것을 저장하고 있기 때문에 핵폭탄을 필요에 따라 재 장전한다. 그러나 ResourceProviderFactory가 각 리소스 클래스의로드를 처리하고 생성 한 클래스를 열거하는 방법을 모르겠습니다.
코드의 개요 :
public class ResourceProvider : IResourceProvider
{
private Dictionary<string, Dictionary<string, object>> _resourceCache
= new Dictionary<string, Dictionary<string, object>>();
private string _virtualPath;
private string _className;
public ResourceProvider(string virtualPath, string className)
{
_virtualPath = virtualPath;
_className = className;
}
public object GetObject(string resourceKey, CultureInfo culture)
{
...
}
}
public class ResourceProviderFactory :System.Web.Compilation.ResourceProviderFactory
{
public override IResourceProvider CreateGlobalResourceProvider(string classKey)
{
return new Cannla.Business.Resource.ResourceProvider(string.Empty, classKey);
}
...
...
}
은 내가 무엇을 계획 한 것은 예를 들어 컬렉션에 새 개체를 추가 한 다음 그 내용을 열거하고 그 내부의 모든 핵무기 (마다 CreateGlobalResourceProvider가 호출되는 참조를 추가했다 개체가 필요한 경우)하지만 ResourceProviderFactory에 이상한 일이 발생하는지 확신 할 수 없습니다.
ResourceProviderFactory IEnumerable 메서드 또는이 코드를 모두 빌드하기 전에 모든 개체를 쉽게 얻을 수있는 방법이 있습니까?
타이밍이 문제가 아니며 생성 된 각 개체에 대한 참조를 얻는 방법을 찾고있었습니다. 그러나 아이디어에 감사드립니다. – mjallday