나는 Akavache를 통해 캐쉬 된 데이터를로드하려고합니다. 그러나 나는 왜 제대로 할 수 없는지 알지 못합니다. FullName 및 전자 메일을 얻으려고하면 로그인 후에 이미 캐시 된 것이므로 "CachedUser"모델에서 getobject를 사용하지만 FullName 및 Email에 대한 정의가없는 이유를 알 수 없습니다. 은 여기 내 CachedUser 모델IObservable doesnt 정의가 들어 있지만 실제로 거기에 정의가 있습니다.
namespace KGVC.Models
{
public class CachedUsers
{
public string FullName { get; set; }
public string Email { get; set; }
}
}
이며, 여기에 내가
public void GetDataCache(object sender, EventArgs e)
{
var loaded = BlobCache.LocalMachine.GetObject<CachedUsers>("usercached");
txtemail.Text = loaded.FullName;
txtfullname.Text = loaded.FullName.ToString();
}
을 구현하려고한다는 Akavache에서 GetObject를하는 코드이며, 여기에 캐시 사용자 코드를입니다
public void CacheUser(AuthenticationResult ar)
{
JObject user = ParseIdToken(ar.IdToken);
var cache = new CachedUsers
{
FullName = user["name"]?.ToString(),
Email = user["emails"]?.ToString()
};
BlobCache.LocalMachine.InsertObject("usercached", cache);
}
여기 내가받는 전체 오류 메시지입니다.
'IObservable<CachedUsers>' does not contain a definition for 'FullName' and no extension method 'FullName' accepting a first argument of type 'IObservable<CachedUsers>' could be found (are you missing a using directive or an assembly reference?)
내 코드에 아무 문제가 없다고 생각하기 때문에 여기에있는 문제는 무엇입니까? 이걸 알아낼 수 있니? 개념의 더 나은 이해를 얻기 위해 비동기/기다리고의 개념과 IObservable
객체로
public async void GetDataCache(object sender, EventArgs e)
{
var loaded = await BlobCache.LocalMachine.GetObject<CachedUsers>("usercached").Subscribe(user => {
// TODO might need to wrap this in a Device.BeginInvokeOnMainThread
txtemail.Text = user.FullName;
txtfullname.Text = user.FullName.ToString();
});
}
봐 :
덕분에 구독과 함께 그 작품을,하지만 거기에 나를 위해 그것을 기다리고 사용하지 못할 궁금하게 만드는 무언가가있다 그리고 그 IObservable은 Awaiter 얻을에 대한 정의가 포함되어 있지 않습니다. 하지만 결국 내 코드가 작동, 난 그냥 여기에 아하하하 호기심이 –
아 나는 지금 당신을 위해 그것을 체크 아웃 실제 코드가 필요하지 않습니다. 기억에서 나는 이런 것을 기억했고 두 가지 중 하나를 할 수 있다고 생각했습니다. 아마도 그 방법의 과부하 일 겁니다. 하지만 최근 버전에서는 제거되었을 수도 있습니다. 다행히 도왔다! –
ok thaks Gerarld 당신은 나에게 매우 도움이되었습니다 –