powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как перебрать всех private member в компоненте
6 сообщений из 6, страница 1 из 1
Как перебрать всех private member в компоненте
    #32385244
Полуэкт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется некий компонент.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
public class DebtorComponent : System.ComponentModel.Component
{
	public System.Data.SqlClient.SqlDataAdapter sdaDebtor;
	private System.Data.SqlClient.SqlCommand sqlSelectCommand1;
	private System.Data.SqlClient.SqlCommand sqlInsertCommand1;
	private System.Data.SqlClient.SqlCommand sqlUpdateCommand1;
	public System.Data.SqlClient.SqlConnection sqlConnection1;
	/// <summary>
	/// Required designer variable.
	/// </summary>
	private System.ComponentModel.Container components = null;

	public DebtorComponent(System.ComponentModel.IContainer container)
	{
		///
		/// Required for Windows.Forms Class Composition Designer Support
		///
		InitializeComponent();


хочется в конструкторе всем sqlCommand присвоить один объект типа SqlConnection.

хочется это сделать автоматом... перебрать как то их. я не вижу пути как это сделать. может существует какая то возможность через какой нибудь рефлекшн. на всякий случай решил обратиться к гуру может кто то придумал ход конем?

п.с. компонент создается дизайнером add component и потом туда добавляются дата адаптеры тоже в дизайнере не в коде (перетягиваются из тулбокса)
...
Рейтинг: 0 / 0
Как перебрать всех private member в компоненте
    #32385262
Полуэкт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
посмотрел внимательно рефлекшн - можно там все сделать но трудно протестировать т.к. компонент создается в сервисе и в случае ошибок сервис просто не запускается и не получается его дебагером приаттачить.. надо почитать как сервисы дебагить грамотно :)
...
Рейтинг: 0 / 0
Как перебрать всех private member в компоненте
    #32385327
Марсианин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот потому что не надо быть таким умным и не будет таких проблем :)
...
Рейтинг: 0 / 0
Как перебрать всех private member в компоненте
    #32385494
Valera-x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
FieldInfo[] myFieldInfo;			
Type myType = this.GetType();

// Get the type and fields of 'FieldInfoClass' class.
myFieldInfo = myType.GetFields(BindingFlags.NonPublic | BindingFlags.Instance|BindingFlags.Public);

for(int i =  0 ; i < myFieldInfo.Length; i++)
{
  if (myFieldInfo[i].FieldType==typeof(System.Data.SqlClient.SqlCommand))
   {
    System.Data.SqlClient.SqlCommand com=(System.Data.SqlClient.SqlCommand)  myFieldInfo[i].GetValue(this);
    com.Connection=sqlConnection;
   }
}
...
Рейтинг: 0 / 0
Как перебрать всех private member в компоненте
    #32386100
Полуэкт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
супер. сделал по мсдн потом подправил с учетом Валеры-х получилось:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
private SqlCommand com = new SqlCommand();

private void button1_Click(object sender, System.EventArgs e)
{
SqlConnection con = new SqlConnection( "server=mmsys;Trusted_Connection=true;database=p2" );

FieldInfo [] fis = this.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance);
foreach(FieldInfo f in fis)
{

    if(f.FieldType==typeof(System.Data.SqlClient.SqlCommand))
    ((SqlCommand)f.GetValue(this)).Connection = con;
}
. . .


все работает всем спасибо. марсианину венерианский привет :)
...
Рейтинг: 0 / 0
Как перебрать всех private member в компоненте
    #32387560
Полуэкт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
только теперь понял куда делся Бигль 2 и американский аппарат :) Не любят они там слишком умных :) :) :)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как перебрать всех private member в компоненте
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]