延迟加载类
1 public class LazyLoader<TModel> where TModel:class 2 { 3 TModel _data; 4 Func<TModel> _loadDataFunc = null; 5 bool _loaded = false; 6 public LazyLoader():this(null){ } 7 public LazyLoader(Func<TModel> loadDataFunc) 8 { 9 _loadDataFunc = loadDataFunc; 10 _data = null; 11 _loaded = false; 12 } 13 public TModel QueryData() 14 { 15 if (!_loaded && _loadDataFunc != null) 16 { 17 _data = _loadDataFunc(); 18 } 19 return _data; 20 } 21 public void SetData(TModel value) 22 { 23 _data = value; 24 _loaded = true; 25 } 26 }