함수 호출 - .NET SDK
이 페이지의 내용
Atlas Device SDK는 더 이상 사용되지 않습니다. 자세한 내용은 지원 중단 페이지 를 참조하세요.
이 섹션의 예제에서는 두 개의 인수를 받아 더한 다음 결과를 반환하는 sum
라는 이름의 Realm 함수 를 호출하는 방법을 보여 줍니다.
// sum: adds two numbers exports = function(a, b) { return a + b; };
이름으로 함수 호출
중요
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' collection에서 객체를 반환하는 함수를 호출합니다. 반환된 객체의 모양을 알고 있으므로 BsonValue
를 자신이 만든 클래스로 역직렬화한 다음 해당 객체의 속성 및 메서드에 액세스할 수 있습니다.
var item = await user.Functions.CallAsync<MyClass> ("getItem", "5f7f7638024a99f41a3c8de4"); var name = item.Name;