2013-03-29 4 views
4

C# .net에서 System.Codedom.Provider을 사용하여 코드를 동적으로 실행할 수 있습니다. 마찬가지로 Monotouch (iPhone/iPad)에서 코드를 동적으로 실행할 수 있습니다.모노 터치에서 코드를 동적으로 실행할 수 있습니까?

미리 감사드립니다.

+0

왜 동적 코드를 실행해야합니까? – alex

+0

빠른 답장을 보내 주셔서 감사합니다. 내 iPad Monotouch 응용 프로그램이 런타임시 모노 터치에서 코드 (문자열)를 실행하기위한 요구 사항. – Sri

답변

6

아니요. 첫째, Xamarin.iOS actually works (일반적인 .NET 응용 프로그램처럼 실행되지 않고 일반 iOS 응용 프로그램으로 컴파일되는 방식)의 제한 사항과 Apple Appstore의 security 모델 때문입니다. 결국 행동이 언제든지 바뀔 수 있다면 앱이 안전하거나 규정을 준수한다고 선언 할 수 없습니다.

+0

귀중한 정보를 가져 주셔서 감사합니다. Monodroid C#에서 앱이 어떻게 C# 코드를 동적으로 실행하는지 알려주시겠습니까? 이 링크를 확인하십시오. https://play.google.com/store/apps/details?id=com.gregshackles.csharptogo&feature=nav_result#?t=W251bGwsMSwyLDNd – Sri

+2

Monodroid 및 Monotouch는 매우 다르게 작동합니다. Monodroid에서 볼 수 있듯이 실제 Mono가 http://docs.xamarin.com/guides/android/advanced_topics/architecture에서 실행되는 반면 Monotouch에서는 JIT 기능없이 일반 iOS로 컴파일됩니다 http : //docs.xamarin .com/guides/cross-platform/application_fundamentals/building_cross_platform_applications/part_1 _-_ 이해 _the_xamarin_mobile_platform # 1.1.com 편집. Mono (및 .NET)의 동적 코딩에는 JIT가 필요합니다. – Martheen

+0

반면에 JIT는 자바 스크립트에서 허용됩니다. http://stackoverflow.com/questions/5054732/is-it-prohibited-using-of-jitjust-in-time-compiled-code-in-ios-app- for-appstor 왜 Monotouch에서 사용하지 않았습니까? 그것은 네이티브 코드보다 훨씬 느릴 수도 있고, Mono 패러다임을 지원하지 않을 수도 있습니다. – Martheen

6

Xamarin.iOS 버전 7.2부터 C#의 동적 기능에 대한 기본적인 지원이 있습니다. release notes :

실험 : C# 동적 지원. 우리는 Xamarin.iOS에서 C# 동적 기능을 사용할 수있게 만들었지 만이 기능은 매우 복잡하므로 초기 플랫폼에서는 다른 플랫폼에서 실행되는 동적 코드 나 Xamarin.iOS에서 실행하고 싶은 동적 코드를 알려야합니다. 그렇지 않으면 당신은 유사한 예외를 얻을 것이다 -

dynamic d = new { name = "x" }; 
tmp = d.name; 

현재 당신이 종속성으로 Microsoft.CSharp.dll을 추가해야합니다

나는 성공적으로 컴파일 익명 형식의 동적 액세스를 실행했습니다 여기에 :

Error CS0518: The predefined type `Microsoft.CSharp.RuntimeBinder.Binder' is not defined or imported (CS0518) (DynamicSupportOniOS) 
Error CS1969: Dynamic operation cannot be compiled without `Microsoft.CSharp.dll' assembly reference (CS1969) (DynamicSupportOniOS) 

불행하게도 어느 ExpandoObject도 Json.Net의하는 jobject 지금 작동 :

01,232,056,527,492,549,

https://bugzilla.xamarin.com/show_bug.cgi?id=20081https://bugzilla.xamarin.com/show_bug.cgi?id=20082에 대한 두 개의 버그 보고서를 작성했습니다.

관련 문제