2011-05-10 2 views
1

문자열 리소스를 검색하고 속성을 사용하는 데 내 사용자 지정 메서드를 어떻게 사용할 수 있습니까? 예를 들어 :특성이있는 사용자 지정 리소스 공급자를 사용하는 방법?

public class Friend 
{ 
    [Required(ErrorMessage = "Invalid Name")] 
    [Display(Name = "Friend's name")] 
    public string Name { get; set; } 
} 

기본 자원 제공자 공용 속성을 가진 클래스를 찾습니다 (I가 ResourceType/ErrorMessageResourceType가 설정 한 경우),하지만 내 리소스 파일이 생성 된 클래스가없는, 그들은 일반 XML이다.

내가 예상 한 값을 반환하는 ResourceHelper.Get(key) 메서드가 있습니다. 리소스를 검색하는 방식을 사용하려면 어떻게 변경해야합니까?

답변

2

여기에 몇 가지 방법을 시도해보십시오. 넷째 접근법은 유망한 것으로 들립니다.

http://carrarini.blogspot.com/2010/08/localize-aspnet-mvc-2-dataannotations.html

Approaches to solve the problem: 
  • 사용자 지정 빌드 제공자의 데이터베이스에서 리소스를 컴파일 작성

    .
  • 은 리소스 관리자의 속성 이름을 키 으로 변환하는 동적 개체를 만듭니다.
  • 데이터의 특성 확장 어노테이션.
  • 리소스를 포함하는 클래스를 생성하기 위해 T4 템플릿 사용. 동적 객체 그렇게하기 위해

에 대한 귀하의 질문에 대한

[EDIT}

  • , 동적 친구 객체를 생성해야합니다. 즉, DynamicObject 클래스에서 Friend를 상속하고 TryGetMember() 및 TrySetMember()를 구현하는 것입니다. 이러한 속성은 내부적으로 Resource 개체 "HttpContext.GetLocalResourceObject"에서 작동하며 지역화 된 속성을 사용하여 동적 Friend 클래스를 만들 수 있습니다. 그런 다음 랩핑을 사용하려면 사용자 정의 ModelBinder를 구현해야합니다.

    이 사람

    은 그것의 주위에 더 좋은 작품을 발견 : - MVC3 ModelBinder for DynamicObject

+0

나는 그것을보고 나는 동적 객체에 관심이 있어요. 어떻게 작동합니까? – BrunoLM

관련 문제