/// <summary>
		/// Инициализирующий конструктор.
		/// </summary>
		/// <param name="enumer">Перечислитель.</param>
		/// <param name="persistentValues">Значения столбцов, постоянные для каждой строки.</param>
		/// <param name="columnNames">Имена значений столбцов.</param>
		public EnumeratorDataReader(IEnumerator enumer, ParamsDic persistentValues, IEnumerable<string> columnNames)
		{
			if(enumer == null)
				throw new ArgumentNullException("enumer");
			_en = enumer;
			Type t = enumer.GetType();
			if(t.IsGenericType)
				t = t.GetGenericArguments()[0];
			else
				t = typeof(object);
			if(columnNames == null)
			{
				if(persistentValues != null)
					foreach(string s in persistentValues.Params)
						_columns.Add(new ValuesPair<string, object>(s, persistentValues[s]));
				foreach(PropertyInfo pi in t.GetProperties())
					_columns.Add(new ValuesPair<string, object>(pi.Name, ReflectionHelper.CreateCallLambdaFunc(pi.GetGetMethod())));
			}
			else
				foreach(string s in columnNames)
					if(persistentValues != null && persistentValues.ContainsKey(s))
						_columns.Add(new ValuesPair<string, object>(s, persistentValues[s]));
					else
						_columns.Add(new ValuesPair<string, object>(s,
							ReflectionHelper.CreateCallLambdaFunc(t.GetProperty(s).GetGetMethod())));
		}
Exemple #2
0
		//-------------------------------------------------------------------------------------
		#region << Constructors >>
		/// <summary>
		/// Конструктор по умолчанию.
		/// </summary>
		public ConParamsForm()
		{
			InitializeComponent();

			backup = new ParamsDic();
			foreach(PropertyInfo pi in typeof(PulsarConnection).GetProperties(BindingFlags.Static | BindingFlags.Public))
				backup[pi.Name] = pi.GetValue(null, null);
		}
Exemple #3
0
		//-------------------------------------------------------------------------------------
		#region IDisposable Members
		/// <summary>
		/// Подготавливает объект к уничтожению.
		/// </summary>
		public void Dispose()
		{
			UnlinkItem();
			if(_ob != null && _ob is IObjectChangeNotify)
			{
				((IObjectChangeNotify)_ob).ObjectChanging -= Object_ObjectChanging;
				((IObjectChangeNotify)_ob).ObjectChanged -= Object_ObjectChanged;
			}
			if(_pars != null)
			{
				_pars.ObjectChanging -= Params_ObjectChanging;
				_pars.ObjectChanged -= Params_ObjectChanged;
			}
			_ob = null;
		 _pars = null;
		 _txt = null;
		}
		/// <summary>
		/// Инициализирующий конструктор.
		/// </summary>
		/// <param name="enums">Перечисление.</param>
		/// <param name="persistentValues">Значения столбцов, постоянные для каждой строки.</param>
		/// <param name="columnNames">Имена значений столбцов.</param>
		public EnumeratorDataReader(IEnumerable enums, Type itemType, ParamsDic persistentValues, IEnumerable<string> columnNames) :
		 this(enums.GetEnumerator(), itemType, persistentValues, columnNames)
		{
		}
		/// <summary>
		/// Перезапускает чтение без обновления столбцов.
		/// </summary>
		public void Reset(IEnumerator enums, ParamsDic persistentValues)
		{
			_en = enums;
			//_en.Reset();
			if(persistentValues != null)
			 foreach(var i in _columns)
				 if(i.Value2 is Delegate == false && persistentValues.ContainsKey(i.Value1))
					 i.Value2 = persistentValues[i.Value1];
		}
		//-------------------------------------------------------------------------------------
		#region << Methods >>
		/// <summary>
		/// Перезапускает чтение без обновления столбцов.
		/// </summary>
		public void Reset(IEnumerable enums, ParamsDic persistentValues)
		{
			if(enums == null)
			 throw new ArgumentNullException("enums");
			Reset(enums.GetEnumerator(), persistentValues);
		}