Ich habe eine DLL, die eine Schaltflächenklasse hat. es sieht so ähnlich:So ändern Sie den Eigenschaftswert, der durch Reflexion erhalten wurde C#
internal class CoolButton12345: UserControl
{
all fields, properties and methods...
public Image Image{get;set;}
}
Ich versuche, diese Schaltfläche Eigenschaft Wert zu meinem eigenen zu ändern.
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;
Aber ich bin immer diesen Fehler
Eine nicht behandelte Ausnahme des Typs 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException' in System.Core.dll
aufgetreten Warum meine Methode ist falsch? Bitte sag mir, kann ich sowas machen oder nicht? Wenn ich bitte helfen kann, den Weg zu finden, wie man das macht.
Könnten Sie bitte etwas Code hinzufügen, wie ich so etwas tun könnte? –
Es ist in Ordnung, aber ich muss Wert auf Image-Eigenschaft von playButton, nicht playButton setzen. –
Dann müssten Sie die Image-Eigenschaft dieses Objekts widerrufen. –