我对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)的任何想法?
答案 0 :(得分:1)
您根本不需要Reflection.Emit来动态设置值。那是纯粹的System.Reflection(没有“Emit”部分)。
事实上,MonoTouch.Dialog使用FieldInfo中的SetValue和GetValue动态读取和存储值(也可以为属性完成)。