Ligar para uma função - .NET SDK
Nesta página
Os exemplos nesta seção demonstram a chamada de umaFunção de Realm denominada sum
que recebe dois argumentos, os adiciona e retorna o resultado:
// sum: adds two numbers exports = function(a, b) { return a + b; };
Observação
Autentique primeiro
Você chama funções em um objeto de usuário , portanto, antes de chamar qualquer função, você deve autenticar um usuário.
Chamar uma função por nome
Importante
Certifique-se de limpar os dados do cliente para se proteger contra a injeção de código ao usar funções.
Para executar uma função do .NET SDK, use o método Functions.CallAsync() no objeto User
, passando o nome da função como o primeiro parâmetro e os argumentos como os parâmetros restantes:
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);
Observação
O método CallAsync()
retorna um único objeto BsonValue
, que você pode desserializar após chamar a função ou usando a sobrecarga genérica. Ambas as abordagens para desserialização são mostradas no código acima.
Um objeto BsonValue
pode conter um único valor primitivo (como mostrado no exemplo acima) ou conter um documento BSON completo. Se você tiver uma classe que mapeia para o objeto retornado, você poderá desserializar para essa classe usando a sobrecarga genérica. Por exemplo, o código a seguir chama uma função que retorna um objeto de uma collection de "RealmTasks". Como conhecemos a forma do objeto retornado, podemos desserializar o BsonValue
para uma classe que criamos e, em seguida, temos acesso às propriedades e métodos desse objeto:
var item = await user.Functions.CallAsync<MyClass> ("getItem", "5f7f7638024a99f41a3c8de4"); var name = item.Name;