Чтобы любой код в статическом или нестационарном классе вызывал нестатический метод, вызывающий должен иметь ссылку на объект, на который выполнен вызов.
В вашем case, Bar
's MethodCaller
должен иметь ссылку на Foo
. Вы можете передать его в конструкторе Bar
или любым другим способом, который вам нравится:
class Foo
{
Bar b1 = new Bar(this);
public object MethodToCall(){ /*Method body here*/ }
}
Class Bar
{
private readonly Foo foo;
public Bar(Foo foo) {
// Save a reference to Foo so that we could use it later
this.foo = foo;
}
public void MethodCaller()
{
// Now that we have a reference to Foo, we can use it to make a call
foo.MethodToCall();
}
}