簡體   English   中英

如何改變通過反思得到的財產價值C#

[英]How To Change Property Value Which Was Get By Reflection C#

我有一個按鈕類的DLL。 它看起來像那樣:

internal class CoolButton12345: UserControl
{
  all fields, properties and methods...
  public Image Image{get;set;}
}

我正在嘗試將此按鈕屬性值更改為我自己的值。

dynamic playButton = typeof (FooDll).Assembly.GetType("ClassWhichHasThisButton")
                .GetFields(BindingFlags.Instance | BindingFlags.NonPublic)
                .FirstOrDefault(x => x.Name == "playButton").GetValue(FooInstance.Controls[0]);
playButton.Image = (Image)pauseBitmap;

但是我收到了這個錯誤

System.Core.dll中發生未處理的“Microsoft.CSharp.RuntimeBinder.RuntimeBinderException”類型異常

為什么我的方法錯了? 請告訴我,我可以這樣做嗎? 如果我能幫忙找到如何做到這一點的方式。

嘗試這個:

dynamic playButton = FooInstance.playButton;

playButton.Image = (Image)pauseBitmap;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM