Ich arbeite an einem Projekt, bei dem System.Web.Helpers.Webgrid
als Basisklasse für ein neues Gitter verwendet wird. Ich glaube, dass es Reflektion verwendet, um private Methoden der Basisklasse aufzurufen.C# Reflection - GetMethod
Könnte jemand bitte ....... Im folgenden Code klären, wie GetDefaultColumnsMethod
kehrt etwas zu sehen, kann ich davon ausgehen, dass System.Web.Helpers.WebGrid
eine Methode hat auf sie "GetDefaultColumns"
benannt?
private MethodInfo GetDefaultColumnsMethod
{
get { return typeof(System.Web.Helpers.WebGrid).GetMethod("GetDefaultColumns", BindingFlags.Instance | BindingFlags.NonPublic); }
}
private IEnumerable<WebGridColumn> GetDefaultColumns(IEnumerable<string> exclusions)
{
return (IEnumerable <WebGridColumn>)GetDefaultColumnsMethod.Invoke((System.Web.Helpers.WebGrid)this, BindingFlags.Instance | BindingFlags.NonPublic, null, new object[] { exclusions }, null);
}
Referenzquelle https://github.com/ASP-NET-MVC/aspnetwebstack/blob/master/src/System.Web.Helpers/WebGrid/WebGrid.cs –
Dies ist in der [Dokumentation] angegeben (https://msdn.microsoft.com/en-us/library/05eey4y9(v=vs.110).aspx). – Default
Wenn Sie die Methode aufrufen möchten, empfehle ich zu testen, ob sie auch * erwartete Parameter * hat –