Om jag står i denna metod: Kan du förklara varför du behöver det? Jag har en massa metoder, det är en webservice, och i alla dessa finns det naturligvis inparametrar. Du kan få fram vilka parametrar du har mha ngt i stil med: AOP är en annan lösning: http://www.postsharp.org/input-parameter-collection i vanliga funktioner?
<code>
public string Foo(int bar, string baz)
{
//massa kod...
}
</code>
Finns det något bra sätt att hämta alla inputparametrar inne i metoden? Med andra ord finns dom i någon array/list/collection eller liknanade så jag i princip kan säga:
<code>
foreach (object item in Foo.Inputparameters)
{
string ip = String.Empty;
ip+= item.value.toString()+", ";
}
LogInput(ip);
</code>
Tack på förhand.Sv: input-parameter-collection i vanliga funktioner?
Du kan använda parameterarray
<code>
public string Foo(params object[] args) {
return string.Join(", ", args.Select(x=>x.ToString()).ToArray());
}
</code>Sv:input-parameter-collection i vanliga funktioner?
Vissa av dessa "fungerar inte" men jag misstänker att vi får in fel värden i dessa, så jag tänkte logga vad som kommer in i dom. och i ställer för att, om vi tar exemplet ovan. slå ihop bar och baz, vilket i sig inte är några problem men det finns massor med metoder så jag tänkte att jag skulle skriva en generell funktion som bara samlar ihop det jag får in och skriver till en fil eller något i den stilen.Sv: input-parameter-collection i vanliga funktioner?
Reflection.MethodInfo.GetCurrentMethod().GetParameters()
Däremot kan du inte få fram värdena så, se http://bytes.com/groups/net/118763-get-current-methods-parameter-values-collection-reflection
Man kanske skulle kunna tänka sig att man vänder på det - att du i runtime modifierar metoderna så att de skriver ut till en fil?Sv:input-parameter-collection i vanliga funktioner?
Har aldrig nyttjat det själv, men det hade varit det första jag testat, reflection för varje metodanrop kan bli en del overhead...