NSUserDefaults in monotouch

时间:2010-04-09 01:28:05

标签: xamarin.ios

我对Miguel的MonoTouch.Dialog印象深刻。受到他简单方法的启发,我认为通过将某些属性标记为“在用户默认值中可持久”并且忘记其余属性,可以非常好地使用基于反射的NSUserDefaults类。像这样的东西:

    public class SomeController
    {
        [PersistInUserSettings]
        public string LastPostUserRead { get; set; }
    }

我不喜欢LastPostUserRead属于“UserSetting”类型,我喜欢它是一个普通的属性,所以稍后我可以分配给它:

LastPostUserRead = "Post 1";

而不喜欢:

LastPostUserRead.SetValue("Post 1");

关于如何在monotouch中实现它(没有Reflection.Emit)的任何想法?

1 个答案:

答案 0 :(得分:1)

您根本不需要Reflection.Emit来动态设置值。那是纯粹的System.Reflection(没有“Emit”部分)。

事实上,MonoTouch.Dialog使用FieldInfo中的SetValue和GetValue动态读取和存储值(也可以为属性完成)。