문제의 배경은입니다.디자인 타임 중에 특성 창에서 특정 유형을 채우기위한 특수화 된 텍스트 상자가 있습니까?
. NET 응용 프로그램 개발을위한 자체 ORM 프레임 워크가 있습니다. 이제 ORM과 긴밀하게 작업 할 수있는 특수 UI 객체를 만들려고합니다. 모든 UI 컨트롤에서 구현되는 IBindable이라는 인터페이스를 만들었습니다. 우리는 asp.net의 textbox webcontrol으로 시작했습니다. 먼저 IBindable 인터페이스를 구현하는 System.Web.UI.WebControls.TextBox에서 파생 된 TextBox 클래스를 만들었습니다.
IBindable은 ORM의 키 바인딩 정보를 보유해야합니다.
- EntityType
- EntityFields
EntityType는 ORM 내의 buiness 오브젝트의 유형과 EntityField는에 결합되는하기 EntityType 비즈니스 객체의 특정 속성 인 실행 시간.
지금 실제 문제가
, 설계 시간 동안, 우리는 텍스트 상자의 PROPERT 창에서 텍스트 상자 속성 EntityType의 프로젝트에 사용할 수있는 모든 비즈니스 오브젝트를 채울 바랍니다. 사용자가 주어진 엔티티 유형을 선택하면 해당 EntityField 속성에 대해 선택된 EntityType의 속성을 채워야합니다.
는 우리의 모든 사업 개체 또는 엔티티 객체가 EntityBase 추상 클래스에서 파생 있습니다.
: http://msdn.microsoft.com/en -us/library/system.componentmodel.iextenderprovider.aspx – Heinzi
IExtenderProvider 공급자는 주로 Windows 양식에서 작동합니다. asp.net을 지원합니까? –
비록 디자이너의 지원이 다소 불충분하지만 그렇습니다. 우리는 비슷한 (데이터 바인딩을 위해 .net 1.0의 구시대에서) 비슷한 작업을 수행했고 디자이너가 아닌 코드로 속성을 설정했습니다. – Heinzi