2009-12-17 162 views
1

我有我的asp.net-mvc項目的[Logger]屬性。 這個LoggerAttribute在它的構造函數中需要一個ILoggerService。注入屬性?

對於常規對象(例如我的控制器),它可以工作,但屬性似乎沒有解決。

我該如何讓Turbine注入ILoggerService?

回答

2

您的Logger屬性是一個Action | Result | Error | Authorization過濾器嗎?如果是這樣,您可以使用InjectableFilterAttribute類來指定Turbine爲您注入的過濾器的類型。這樣你可以支持ctor注入你的服務。

要了解如何完成這項工作,請查看隨Turbine一起提供的Filter Injection sample

+0

不錯:)重點是我在找什麼 – 2009-12-21 07:56:06

3

屬性參數必須是常量表達式,所以您不能實例化要賦予屬性的對象。

http://msdn.microsoft.com/en-us/library/5y0xyec6.aspx

我會做的是需要你的控制器在它的構造函數接受ILoggerServer和具有渦輪注入到你的控制器的構造函數。

+0

要添加到這個正確的答案,你必須考慮爲什麼這是這種情況。屬性嵌入在程序集的元數據中,並適用於類型,而不是類型的實例。如果屬性參數不是恆定的,則情況就不是這樣。 – jason 2009-12-17 17:06:50