2009-12-16 6 views
2

우리는 dll을 준수하는 usercontrols 집합이 있습니다. 우리는 단지 등으로 ASP.theusercontrol_ascx blah = new ASP.theusercontrol_ascx();파일 이름을 사용하여 어셈블리에서 usercontrols를로드하는 방법은 무엇입니까?

을 자신의 클래스 이름을 사용하여 컨트롤을로드 할 수 있지만, 우리는 동적 데이터를 가지고 파일 이름 (또는 컨트롤 이름)를 기반으로 컨트롤을로드하는 경우, 는 어떻게 Page.LoadControl("TheURL/theusercontrol.ascx")처럼 그들을로드 할 수 있습니다?

고마워 ... 정말이 일의 적절한 방법이 없습니다

답변

2

. .ascx 파일은 이런 방식으로 배포 할 수 없습니다. 코드가 .dll로 컴파일되었지만 .ascx 파일의 실제 마크 업은 그렇지 않습니다. converting .ascx files to deployable controls에있는 공식적인 Microsoft 문서를 따르더라도 마크 업 파일이 없기 때문에 파일 이름을 기반으로 LoadControl을 호출 할 수 없습니다.

hacks은 리플렉션을 통해이를 수행하고 .ascx 파일을 리소스로 포함 할 수있게합니다.

LoadControl(filename)을 사용해야하는 경우 .ascx 파일을 복사해야합니다.

+0

이 경우 사용자 컨트롤을 인스턴스화 할 수 있습니다. 하지만 문제는 인스턴스화에 문자열을 사용해야한다는 것입니다. 다시 반사가됩니다. = ( – Jronny

+0

아, 글쎄, 정말 선택의 여지가 없습니다. 반사가 내 삶을 다시 저장합니다. 고마워요. – Jronny

관련 문제