欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C# 中屬性PropertyInfo的setvalue用法說明

 更新時間:2021年01月19日 15:39:07   作者:鋒璠  
這篇文章主要介紹了C# 中屬性PropertyInfo的setvalue用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

下面是關(guān)于setvalue方法的介紹以及錯誤簡介

用索引化屬性的可選索引值設置指定對象的該屬性值。

C#

public virtual void SetValue (object obj, object value, object[] index);

參數(shù)

obj Object

將設置其屬性值的對象。

value Object

新的屬性值。

index Object[]

索引化屬性的可選索引值。 對于非索引化屬性,該值應為 null。

實現(xiàn)

SetValue(Object, Object, Object[])

異常

ArgumentException

index 數(shù)組不包含所需的參數(shù)類型。

或 找不到該屬性的 set 取值函數(shù)。

或 - value 無法轉(zhuǎn)換為 PropertyType的類型。

TargetException

在適用于 Windows 應用商店應用的 .NET 或可移植類庫中,改為捕獲 Exception。

該對象與目標類型不匹配,或者某屬性是實例屬性但 obj 為 null。

TargetParameterCountException

index 中的參數(shù)數(shù)量與索引屬性采用的參數(shù)數(shù)量不匹配。

MethodAccessException

在適用于 Windows 應用商店應用的 .NET 或可移植類庫中,改為捕獲基類異常 MemberAccessException。

試圖非法訪問類中的私有或受保護方法。

TargetInvocationException

設置屬性值時出錯。 例如,為一個索引屬性指定的索引值超出范圍。 InnerException 屬性指示出錯的原因。

例子

Dictionary<string, string> dic = new Dictionary<string, string>();
  foreach (Control control in this.Controls )//獲取控件中所有值,添加到字典中
  {
  if (control is TextBox ||control is ComboBox ||control is DateTimePicker )
  {
   dic.Add (control.Name, control.Text);
  }
  }
  PropertyInfo[] propertys = incomingnews.GetType().GetProperties();
  foreach (PropertyInfo property in propertys)//運用propertyinfo的映射方法,給實體類incomingnews的所有屬性賦值。
  {
  for (int i = 0; i<dic.Count; i++)
  {
   property.SetValue(incomingnews, dic[property.Name].ToString(), null);
  }
  }

之前有個小錯誤一直弄不出來,后來看了錯誤提示“index 數(shù)組不包含所需的參數(shù)類型。

或 找不到該屬性的 set 取值函數(shù)。

或 value 無法轉(zhuǎn)換為 PropertyType的類型?!?/p>

發(fā)現(xiàn)自己想要賦值的實體類不是實體的屬性,而是實體的字段,所以setvalue方法就捕捉不到我想要賦值的這些字段,只需要將這些字段設置為自動屬性即可。

補充:C# Property.SetValue()利用反射給某個泛型對象的屬性賦值的問題

問題描述:

在一個泛型方法中,實例化一個泛型對象后,利用反射獲取該泛型中的所有屬性,再給該對象的這些屬性賦值,打斷點發(fā)現(xiàn),泛型對象被實例化出來了,沒有問題;所要賦值的屬性值也沒有問題,但調(diào)用Property.SetValue()后,泛型對象中的值就是賦不上。

問題解決:

調(diào)用該泛型方法時,傳入的類型是個結(jié)構(gòu)體。。這個方法只支持class,不支持struct。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • C#驗證碼識別基礎方法實例分析

    C#驗證碼識別基礎方法實例分析

    這篇文章主要介紹了C#驗證碼識別基礎方法實例分析,較為詳細的總結(jié)了C#驗證碼的實現(xiàn)思路及具體步驟,并對實現(xiàn)思路進行了總結(jié)歸納,具有很好的實用價值,需要的朋友可以參考下
    2014-09-09
  • C#開發(fā)Windows服務實例之實現(xiàn)禁止QQ運行

    C#開發(fā)Windows服務實例之實現(xiàn)禁止QQ運行

    這篇文章主要介紹了通過C#開發(fā)Windows服務,查殺qq進程的服務功能,需要的朋友可以參考下
    2013-10-10
  • Unity實現(xiàn)紅酒識別的示例代碼

    Unity實現(xiàn)紅酒識別的示例代碼

    本文主要介紹了如何通過Unity實現(xiàn)紅酒識別,可以實現(xiàn)識別圖像中的紅酒標簽,返回紅酒名稱、國家、產(chǎn)區(qū)、酒莊、類型、糖分、葡萄品種、酒品描述等信息,感興趣的可以學習一下
    2022-02-02
  • C# Winform下載文件并顯示進度條的實現(xiàn)代碼

    C# Winform下載文件并顯示進度條的實現(xiàn)代碼

    本來是要研究怎樣判斷下載完成,結(jié)果找到這個方法,可以在這個方法完成之后提示下載完成,需要的朋友可以參考下
    2014-07-07
  • c#數(shù)學表示法(后綴表示法)詳解

    c#數(shù)學表示法(后綴表示法)詳解

    什么是后綴表達式,查了下原來是一種比較特殊的數(shù)學表達式,有三種表達式:前綴表達式、中綴表達式和后綴表達式,下面我們使用示例學習一下
    2014-01-01
  • c#之關(guān)閉窗體的實現(xiàn)方法

    c#之關(guān)閉窗體的實現(xiàn)方法

    這篇文章主要介紹了c#之關(guān)閉窗體的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • C#中調(diào)用Windows API的技術(shù)要點說明

    C#中調(diào)用Windows API的技術(shù)要點說明

    本篇文章主要是對C#中調(diào)用Windows API的技術(shù)要點進行了詳細的介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-01-01
  • C#實現(xiàn)快遞api接口調(diào)用方法

    C#實現(xiàn)快遞api接口調(diào)用方法

    這篇文章主要介紹了C#實現(xiàn)快遞api接口調(diào)用方法,主要是通過快遞API網(wǎng)接口的服務,使用的時候直接申請個接口UID即可,有需要的小伙伴來參考下吧。
    2015-03-03
  • C#?Timer控件學習之使用Timer解決按鈕冪等性問題

    C#?Timer控件學習之使用Timer解決按鈕冪等性問題

    Timer控件又稱定時器控件或計時器控件,該控件的主要作用是按一定的時間間隔周期性地觸發(fā)一個名為Tick的事件,因此在該事件的代碼中可以放置一些需要每隔一段時間重復執(zhí)行的程序段,這篇文章主要介紹了關(guān)于C#使用Timer解決按鈕冪等性問題的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • C#通過NPOI操作Excel的實例代碼

    C#通過NPOI操作Excel的實例代碼

    C#操作Excel的方法有很多種,本文介紹了C#通過NPOI操作Excel,具有一定的參考價值,有興趣的可以了解一下。
    2017-01-01

最新評論