неуниверсальный тип нельзя использовать с аргументами типа (Realm Xamarin) - PullRequest
0 голосов
/ 25 сентября 2018

Я решил использовать базу данных Realm для xamarin ios

Мне нужно получить ответ от API и записать в него данные базы данных.

Вот метод получения данных из API

 public async Task<string> Logining(string email, string password)
    {
        string result;
        var client = new RestClient("http://api.xplorpal.com");
        var request = new RestRequest("/login", Method.POST);
        request.AddParameter("email", email);
        request.AddParameter("password", password);
        IRestResponse response = await client.ExecuteTaskAsync(request);
        var content = response.Content;
        if (content.Length > 100)
        {
            try
            {
                var usr = JsonConvert.DeserializeObject<List<User>>(content);
                var realm = Realm.GetInstance();
                realm.Write(() =>
                {
                    var mydog = realm.CreateObject<UserModel>();

                });

            }
            catch 
            { 
            }
            result = "Authorized";
        }
        else
        {
            result = "Auth problem" + content;
        }
        return result;
    }

В этой строке я хочу записать данные в базу данных области

 var realm = Realm.GetInstance();
                realm.Write(() =>
                {
                    var mydog = realm.CreateObject<UserModel>();

                });

Но я получаю ошибку

неуниверсальный тип не может использоваться саргументы типа (строка, объект)

Но я делаю все как в документах

Документы областей

Как я могу это решить?

1 Ответ

0 голосов
/ 25 сентября 2018

Вы ссылаетесь на старую запись в блоге Realm, и с тех пор (2016 г.) API был изменен.

Вместо непосредственного использования CreateObject вы можете создать подкласс RealmObject, назначить его свойства и затем добавитьэто к вашему экземпляру Realm:

var realm = Realm.GetInstance();
var mydog = new UserModel
{
   // Set your properties...
};
realm.Write(() => realm.Add(mydog));

Я бы порекомендовал обратиться к документации .Net Realm напрямую:

Более новыйверсия метода CreateObject возвращает «динамический» объект и создает «заполнитель» в экземпляре Realm на основе предоставленного вами первичного ключа:

var dynObj = realm.CreateObject(typeof(UserModel).FullName, "somePIKey");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...