C# .net では、 を使用してコードを動的に実行できますSystem.Codedom.Provider
。同じように、Monotouch (iPhone/iPad) でコードを動的に実行する可能性があります。
前もって感謝します、
C# .net では、 を使用してコードを動的に実行できますSystem.Codedom.Provider
。同じように、Monotouch (iPhone/iPad) でコードを動的に実行する可能性があります。
前もって感謝します、
ありえない。1 つ目は、Xamarin.iOS の実際の動作の制限(通常の .NET アプリのように動作するのではなく、プレーンな iOS アプリにコンパイルされる) と、Apple Appstoreのセキュリティモデルのためです。結局のところ、動作がいつでも変更される可能性がある場合、アプリが安全である、または規制に準拠していると宣言することはできません。
Xamarin.iOS バージョン 7.2 以降、C# の動的機能に対する基本的なサポートがいくつかあります。リリースノートから:
実験的: 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 も機能しません。
dynamic x = new ExpandoObject();
x.NewProp = "demo"; // this still works
Console.WriteLine(x.NewProp); // fails with Xamarin.iOS 7.2
dynamic d = JObject.Parse("{number:1000, str:'string', array: [1,2,3,4,5,6]}");
Console.WriteLine(d.number); // fails with Xamarin.iOS 7.2
これについては、 https ://bugzilla.xamarin.com/show_bug.cgi?id=20081とhttps://bugzilla.xamarin.com/show_bug.cgi?id=20082の 2 つのバグ レポートを作成しました。