2010-12-14 4 views
0

Ich habe eine Frage zu .Net CF 3.5 Reflection.I am Aufruf erwartet etwas Verfahren wie diesem,Einstellparameter aufgerufen Methode

 object n= instance.Type.GetMethod("DoSome" 
      ).Invoke(instance.Instance, 
      new object[] { commandKeys } 
      ); 

commandKey ist meine Parameterliste, instance.Type und instance.Instance ist nicht null . Methoden rufen normalerweise aber, wenn ich eine Eigenschaft (gehört zu der Klasse I nennen) in „DoSome“ Methode, eine Eigenschaft nicht einen Wert (Standardwert) hat.

public class CSet:ITask 
{ 
    public void DoSome 
{ 
    SomeProperty=true; 
    OnTaskCompleted(this); 


} 
} 

I "OnTaskCompleted" delegieren bin fangen die "ITask" Schnittstelle enthält, aber wie ich schon sagte ITask SomeProperty mein hat nicht Wert gegeben

Thx Ihre Antworten.

Antwort

0

Sie sagen, dass die „Methoden aufrufen normal“, aber zugleich behaupten Sie, dass der Code innerhalb der Methode wird nicht ausgeführt. Woher wissen Sie, dass die Methode überhaupt aufgerufen wird?

Sind Sie sicher, dass instance.Instace dieselbe Instanz ist, die Sie SomeProperty einschalten, und fangen Sie OnTaskCompleted aus?

+0

ich nicht sagen „Methode nicht ausgeführt“ .Verfahren aufruft, aber in der Methode invoke setze ich eine Eigenschaft nach, dass ich Eigenschaft sehen hat mein nicht Wert gegeben, es nicht changed.Also ich bin sicher, instance.Instace gleiche ist, dass Alle rufen die Operation auf. –

Verwandte Themen