1

我想在使用TinyIoC的MonoTouch中使用依賴注入,但是我似乎無法弄清楚我應該在哪裏註冊,以及在我的控制器中注入我的服務的構建(是正確的術語?)在MonoTouch + Storyboard中使用TinyIoC - 在哪裏建立?

我創建了一個新的MonoTouch Storyboard Project,查看了這些文件,並找不到實例化我的控制器的代碼。

我試圖在我的AppDelegate上創建一個構造函數,然後在我的控制器的構造函數中執行類型註冊,然後執行container.BuildUp(this);。不過,我有一種感覺,這是錯誤的。

我該怎麼辦?

回答

1

你的方法對我來說似乎是對的。

不過,我會將註冊移至AppDelegate中的DidFinishLaunching

故事板的問題是您的所有控制器都是從Objective-C創建的,這就是爲什麼使用IntPtr構造函數的原因。真的,你的控制器的構造函數是唯一可以調用BuildUp的好地方。

你現在的工作方式有問題嗎?

另一種選擇是使用不同類型的容器,我似乎更喜歡簡單的(甚至比TinyIoC)。 Here是我寫的。

+0

小世界,我已經在Xamarin論壇上讀過你的帖子:) - 我嘗試的第一件事是在DidFinishLaunching中進行註冊,但是由於控制器在該方法之前被實例化被稱爲,所以它基本上做了任何註冊之前的BuildUp。 – Jeff

+0

- 是的,這種方式非常好,只是尋找一些「最佳實踐」。我用一個Dependency屬性修改了TinyIoC,所以只有我選擇的屬性被它處理。 – Jeff

+0

是的,在'AppDelegate'中使用構造函數可能是你必須放置的地方。另一個選擇是'static void Main()',但我不知道這是好還是壞。總的來說,我會說你的方法很好。 – jonathanpeppers

相關問題