Heim  >  Artikel  >  Backend-Entwicklung  >  Asp.net verwendet Reflection, um eine Beispielcodeanalyse zum Zuweisen von Werten zur Modellklasse zu implementieren

Asp.net verwendet Reflection, um eine Beispielcodeanalyse zum Zuweisen von Werten zur Modellklasse zu implementieren

黄舟
黄舟Original
2017-03-28 11:14:451800Durchsuche

Dieser Artikel stellt hauptsächlich die Methode von asp.net vor, die Reflektion verwendet, um der Klasse Modell Werte zuzuweisen. Er analysiert die Betriebsschritte und zugehörigen Betriebstechniken von asp.net, die Reflektion zum Zuweisen von Werten verwendet ​Zur Modellklasse in Form von Beispielen. Freunde in Not können sich darauf beziehen

Das Beispiel in diesem Artikel beschreibt die Methode zum Zuweisen von Werten zur Modellklasse mithilfe von Reflection in asp.net. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

/// <summary>
/// 给model类自动赋值
/// </summary>
/// <param name="sqlstring">获取查询一个model实例的sql语句</param>
/// <param name="obj">model实例对象</param>
/// <returns></returns>
public object selmodel(string sqlstring,object obj)
{
  DataTable dtsell = lcommonbll.GetTable(sqlstring);
  int count = dtsell.Rows.Count;
  if (count == 0)
  {
   return null;
  }
  else
  {
   DataRow dr = dtsell.Rows[0];
   #region 另一种方法
   //foreach (DataColumn col in dr.Table.Columns)
   //{
   // PropertyInfo pt = seller.GetType().GetProperty(col.ColumnName);
   // if (String.IsNullOrEmpty(dr[col.ColumnName].ToString()))
   // {
   //  break;
   // }
   // else
   // {
   //  pt.SetValue(seller, dtsell.Rows[0][0], null);
   // }
   //}
   #endregion
   foreach (System.Reflection.PropertyInfo pi in obj.GetType().GetProperties())
   {
    if (pi.CanWrite)
    {
     try
     {
      if (dtsell.Rows[0][pi.Name]!=null)
      {
       pi.SetValue(obj, dtsell.Rows[0][pi.Name], null);
      }
      else
      {
       pi.SetValue(obj, null, null);
      }
     }
     catch
     {
      pi.SetValue(obj, null, null);
     }
    }
   }
   return obj;
  }
}

.CS-Aufruf

Seller seller = new Seller();//实体类
bind BIND = new bind();//绑定方法类
seller = (Seller)BIND.selmodel("select * from seller where SID=2", seller);//赋值

Das obige ist der detaillierte Inhalt vonAsp.net verwendet Reflection, um eine Beispielcodeanalyse zum Zuweisen von Werten zur Modellklasse zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn