関数の呼び出し - .NET SDK
項目一覧
Atlas Device SDK は非推奨です。 詳細については、 の廃止ページを参照してください。
このセクションの例では、2 つの引数を受け取り、それらを加算して結果を返す sum
という名前の Realm 関数を呼び出す方法が示されています。
// sum: adds two numbers exports = function(a, b) { return a + b; };
名前を使用して関数を呼び出す
重要
Atlas Functions を使用する際は、コード インジェクションから保護するために、クライアント データを必ずサニタイズしてください。
.NET SDK から関数を実行するには、 User
オブジェクトでFunctions.CallAsync()メソッドを使用して、最初のパラメーターとして関数の名前を渡し、残りのパラメーターとして引数を渡します。
var bsonValue = await user.Functions.CallAsync("sum", 2, 40); // The result must now be cast to Int32: var sum = bsonValue.ToInt32(); // Or use the generic overloads to avoid casting the BsonValue: sum = await user.Functions.CallAsync<int>("sum", 2, 40);
注意
CallAsync()
メソッドは単一のBsonValue
オブジェクトを返します。これは、 関数を呼び出した後、または汎用オーバーロードを使用して逆シリアル化できます。 逆シリアル化へのこれらの両方のアプローチが上記のコードに表示されています。
BsonValue
オブジェクトは、単一のプリミティブ値(上記の例に示すように)を保持することも、完全な BSON ドキュメントを保持することもできます。 返されたオブジェクトにマップするクラスがある場合は、ジェネリック オーバーロードを使用してそのクラスに逆シリアル化できます。 たとえば、次のコードは、"RealmTasks" のコレクションからオブジェクトを返す関数を呼び出します。 返されるオブジェクトの形状がわかっているため、作成したクラスにBsonValue
を逆直列化でき、そのオブジェクトのプロパティとメソッドにアクセスできます。
var item = await user.Functions.CallAsync<MyClass> ("getItem", "5f7f7638024a99f41a3c8de4"); var name = item.Name;