Проверить существование поля объекта - C#
Формулировка задачи:
Как проверить существование определённого поля (переменной) у объекта?
В метод leadLocalLog передаётся объект формы и сообщение. Этот метод должен проверить если у текущей переданной формы поле toolStripStatusLabel1 что бы туда записать сообщение. Суть в том, что этот метод ещё и пишет сообщения в общий лог, поэтому проще просто отовсюду вызывать его передавая объект формы и сообщение а он записывает данные куда надо. У меня просто программа с множеством форм у которых есть toolStripStatusLabel1.
В общем это не важно. Главное как узнать существует ли у объекта определённое поле или нет?
я как только не пробовал...
public void leadLocalLog(Object obj, string message) {
Program.log.writeData(message);
Type type = obj.GetType();
PropertyInfo propertyInfo = type.GetProperty("toolStripStatusLabel1");
if (propertyInfo != null) {
Type type1 = propertyInfo.GetType();
PropertyInfo propertyInfo1 = type1.GetProperty("Text");
if (propertyInfo1 != null) {
propertyInfo1 = (string)message;
}
}
}
public void leadLocalLog(Object obj, string message) {
Program.log.writeData(message);
Type type = obj.GetType();
PropertyInfo propertyInfo = type.GetProperty("toolStripStatusLabel1");
if (propertyInfo != null) {
obj.toolStripStatusLabel1.Text = message;
}
}
public void leadLocalLog(Object obj, string message) {
Program.log.writeData(message);
if (obj.toolStripStatusLabel1 != null) {
obj.toolStripStatusLabel1.Text = message;
}
}Решение задачи: «Проверить существование поля объекта»
textual
Листинг программы
public void leadLocalLog(Form obj, string controlName, string message) {
Program.log.writeData(message);
// controlName = "toolStripStatusLabel1"
var controls = obj.Find(controlName,true);
if (controls.Any()){
// do ur job
}
}