![](/img/trans.png)
[英]How to call a method with arguments of different types using reflection in C#
[英]call method with params in arguments through reflection c#
來自數據庫的方法返回記錄。
public T Find(params object[] primaryKeys)
{
var dbSet = _sessionContext.Set<T>() as DbSet<T>;
return dbSet != null ? dbSet.Find(primaryKeys) : null;
}
我試圖通過反思來呼喚
var methodCreateReadRepositoryEntity =
typeof(IRepositoryFactory)
.GetMethod("CreateReadRepository")
.MakeGenericMethod(entityMetadata.GetEntityType());
var entityReadRepository =
methodCreateReadRepositoryEntity
.Invoke(_repositoryFactory, new object[] { _sessionMarketContext });
List<object> keys = new List<object>();
keys.Add(value);
var methodEntityGet =
entityReadRepository.GetType().GetMethod("Find", new Type[] { typeof(object[])});
var fromRepo =
methodEntityGet.Invoke(entityReadRepository, new object[]{new []{ keys.ToArray()[0]}});
值是Guid。 我有錯誤
主鍵值之一的類型與實體中定義的類型不匹配。 調用的目標已引發異常。
您的最后一行應如下所示。 您需要明確使用數組類型,並且無需創建List
。
var fromRepo =
methodEntityGet.Invoke(entityReadRepository, new object[]{new object []{value}});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.