zoukankan      html  css  js  c++  java
  • 记录一下 IEditableObject ,FormatterServices

    [Serializable]
    public class MyViewModel : IEditableObject
    {
        [NonSerialized]
        private object[] _copy; 
    
        public MyViewModel()
        {
            Name = string.Empty;
        } 
    
        public int Age { get; set; } 
    
        public string Name { get; set; } 
    
        public void BeginEdit()
        {
            //take a copy of current state
            var members = FormatterServices.GetSerializableMembers(GetType());
            _copy = FormatterServices.GetObjectData(this, members);
        } 
    
        public void CancelEdit()
        {
            //roll back to copy
            var members = FormatterServices.GetSerializableMembers(GetType());
            FormatterServices.PopulateObjectMembers(this, members, _copy);
        } 
    
        public void EndEdit()
        {
            //discard copy
            _copy = null;
        }
    }

    FormatterServices的方法比较有意思

    ----------------------------------- http://www.cnblogs.com/rock_chen/
  • 相关阅读:
    iView
    JS
    JS
    JS
    Java
    Java
    Java
    Java
    Java
    Java
  • 原文地址:https://www.cnblogs.com/rock_chen/p/3021047.html
Copyright © 2011-2022 走看看