我正在實施DynamicObject
。在TryInvokeMethod
中,除了傳遞給方法的參數外,如果已經使用了參數,我還需要這些參數的名稱。在動態方法中獲取參數名稱和值
我可以看到binder.CallInfo.ArgumentNames
確實提供了名稱,但我無法將它們與值相關聯。有沒有辦法這樣做,還是我抱着一線希望:
public override bool TryInvokeMember(InvokeMemberBinder binder, object[] args, out object result)
{
var names = binder.CallInfo.ArgumentNames;
foreach (var arg in args)
{
arguments.Add(new Argument(arg));
}
//I need to associate the names and the args
result = this;
return true;
}
因此,舉例來說,如果我做一個調用,比如:
myDynamicObject.DynamicInvoke("test", something: "test2")
我有test
和test2
,也something
,但我無法獲得something
是test2
和test
沒有名稱的信息。
你應該假設最後一個參數如果有的話對應於最後的方法參數等等。 – user629926
@ user629926感謝您的指針。我用它來獲取下面的代碼。如果你願意,你仍然可以添加答案,我會接受。 – manojlds