2014-05-20 1 views
3

다트에 C# Reflection.Emit 네임 스페이스의 동일 항목이 있습니까?다트 메타 프로그래밍 기능

Reflection.Emit에는 런타임에 유형을 빌드하고 속성을 추가하고 런타임에 getter 및 setter 및 빌드 메소드와 이벤트 핸들러를 구성하는 데 사용되는 여러 클래스가 있으며 이는 메타 프로그래밍의 경우 매우 강력합니다. .

내 생각은 런타임에 내 데이터 모델을 생성하고지도에 캐싱하여 런타임에 인스턴스를 만들고 필요한 경우 새 메소드와 속성을 추가 할 수 있도록하는 것입니다. 생성 후 종종 미러를 사용하지 않아도됩니다. 으로 ORMs 당신은 당신이 인스턴스를 수정해야하는 반사를 사용하여 한 번보다는 매번를 사용하여 더 많은 동적 응용 프로그램을 작성할 때 클래스는,이 정말 유용 할 수

내 질문은 :

  • 하는 등이있을 것입니다 다트의 미래 버전에있는 것? 그들이 Mirror Builder에 대한 뭔가를 언급하지만 난 같은 일을하면 확실하지 않다, 어떤 하나 확인하시기 바랍니다 수 있다면 거울 빌더 에 대해 무엇 이잖아?
  • 또 다른 질문은 서버에 문자열로 서버에서 데이터 유형을 생성 할 수 있다면 클라이언트에 을 전송하고 맵에 맵핑하고 생성하려면이 맵을 사용하기 전에 서버를 컴파일하는 방법이 있습니까? 인스턴스?

답변

3

나는 이것이 언젠가는 지원되어야한다는 것을 알았지 만, 가까운 장래에 일하기 시작하지 않을 것이라는 것을 나는 알았다.

유사 요건은 보통 HTML 반사 특성 또는 액세스 코드 단편에 대한 코드와 생성 된 코드를 분석하여 변압기 구축 시간 (중합체 각도, 등)에서의 코드 발생에 의해 해결된다.

Smoke은이를 단순화하기위한 패키지입니다.

코드 생성은 클라이언트가 다운로드해야하는 코드 양이 훨씬 적다는 이점이 있습니다. 런타임에 코드 생성을 할 때 컴파일러가 필요하며 이는 브라우저에 다운로드해야하는 많은 코드입니다.

try.dartlang.org은 이러한 접근 방식을 취합니다. 출처는 여기 https://code.google.com/p/dart/source/browse/branches/bleeding_edge/dart/site/try/에서 확인할 수 있습니다. dart2js (JavaScript 용으로 빌드 됨)가 포함되어 있으며 다트 코드를 JS로 컴파일하는 백그라운드 격리를 실행합니다. DI 그냥 가리 : 지금은 꽤 유용

+0

덕분에 많이 먹으 렴, 난 그냥 지금 다트에 모든 것을 처음부터 구축 저항 할 수없는, 내가 – FPGA

+0

없음 확률값 많은 언어, 당신이 원하는만큼 즐길를 즐길 적이 그것이 어떻게 행해질 수 있었는지 아이디어를위한 몇몇 근원. –