调用函数 - .NET SDK
在此页面上
Atlas Device SDK 已弃用。 有关详细信息,请参阅弃用页面。
本部分中的示例演示如何调用名为 sum
的 Realm函数,该函数接受两个参数、将它们相加并返回结果:
// sum: adds two numbers exports = function(a, b) { return a + b; };
按名称调用函数
重要
使用函数时,确保对客户端数据进行清理,以防止代码注入。
要从 .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;