2012-12-10 6 views
4

MonoTouch AOT 헬퍼와 관련하여 ServiceStack.Text.JSConfig에 대한 설명서가 있습니까? 나는이 발견 MonoTouch AOT 헬퍼와 관련하여 ServiceStack.Text.JSConfig에 대한 설명서가 있습니까?

... ServiceStack JIT Error on MonoTouch 과 나는 코드를 살펴 했어하지만 거기에 댓글이 없습니다 솔직히 그것이 약간 신비입니다.

AOT 프로세스에 대한 이해에서 유형/메소드가 생성되었는지 확인하려면 컴파일러가 사용/호출 할 수 있다고 생각하는 소스에서 해당 유형/메소드를 사용하는 것이 필요합니다. 런타임에 실제로 어떤 것을 사용하거나 호출 할 필요는 없습니다. AOT의 요점은 그것이 컴파일 타임 프로세스라는 것입니다. 따라서 use/call을 사용되지 않는 메소드 안에 두는 것은 옵티마이 저가 제거하지 않는 한 작동합니다.

저는 ServiceStack.Text.JsConfig.RegisterTypeForAot();을 사용하려고했습니다. (사용되지 않는 방법으로) 내 AOT 문제를 치료할 수 있지만 너무 많은 호출이있을 때 다른 이상한 문제가 발생했습니다.

Calling ServiceStack.Text.JsConfig.RegisterTypeForAot<T>(); with MonoTouch causes SIGSEGV on startup on device

나는 어쩌면 잘못 RegisterTypeForAot() 메소드를 사용하여 수 ... 다른 질문을 참조하십시오? 다른 방법은 무엇을합니까? RegisterForAot()와 InitAot()

답변

1

즉, in-line in the JsConfig 이미보다 약 JsConfig.InitForAot() 다른 어떤 문서가 없습니다 :

의 모든 DTO들에 대한 일반적인 클래스 를 미리 컴파일 MonoTouch AOT 컴파일러에 힌트를 제공가. 고정 생성자에서 한 번만 호출하면됩니다. 당신 만 JsConfig.InitForAot() 스텁과 MonoTouch 컴파일러를 수 있도록 각 유형에 대한 JsConfig.RegisterTypeForAot<T>()을 호출해야한다

은 일반적인 코드는 모든 코드는 일반적인 반사에 사용할 수 있도록 미리 미리 생성 할 필요가 무엇인지 알고있다. 문제가 발생하면 GitHub project issues에 문제가있는 작은 독립 실행 형 테스트 케이스를 제출하면 수행 할 수있는 작업이 있는지 확인할 수 있습니다.