एक बुलाया विधि पैरामीटर प्रकार/इस तरह की जानकारी की गणना कर सकते हैं:कैसे पारित कर की गणना करने में विधि पैरामीटर
private void SomeMethod(int thisValue, string thatValue)
{
StackTrace stackTrace = new StackTrace();
foreach (ParameterInfo pInfo in stackTrace.GetFrame(0).GetMethod().GetParameters())
{
string name = pInfo.Name;
string type = pInfo.GetType().ToString();
}
}
लेकिन वहाँ किसी भी तरह से प्रत्येक पैरामीटर की वास्तविक वस्तु प्राप्त करने के लिए है?
EDIT: मेरा लक्ष्य सभी मानकों को गिनना और उनके मूल्य प्राप्त करना है। LinQ भाव का उपयोग करना, एक तो जैसे पैरामीटर मान प्राप्त कर सकते हैं:
private void SomeMethod(int thisValue, string thatValue)
{
object valueOfThis = GetParameterValue(() => thisValue);
object valueOfThat = GetParameterValue(() => thatValue);
}
private object GetParameterValue<T>(Expression<Func<T>> expr)
{
var body = ((MemberExpression)expr.Body);
return ((FieldInfo)body.Member).GetValue(((ConstantExpression)body.Expression).Value);
}
लेकिन मुझे क्या करना चाहते हैं की तरह कुछ है:
foreach (fooObject o in thisMethod.GetParameterObjects())
{
object someValue = GetParameterValue(() => fooObject);
}
और जिससे संग्रह के लिए एक सामान्य विधि सभी मापदंडों है और उनके मूल्य
क्या आप वास्तविक पैरामीटर मान वाले स्टैक ट्रेस बनाने की कोशिश कर रहे हैं? –
Uhm, वास्तविक पैरामीटर उदाहरणों विधि ... –
@Mark में सही कर रहे हैं: मेरे विचार भी है, लेकिन देखना है कि यह स्पष्ट है वह कुछ अधिक सामान्य, कुछ है कि आप किसी भी ढेर फ्रेम के मूल्यों को प्राप्त करने की अनुमति होगी (के लिए देख रहा है मैं अनुमान लगा रहा हूं ...) –