MEF: Імпортування на полях - МЕФ

Чи рекомендується розміщувати імпорт на власності, а не на полі? Я спробував це на полі, і він працює, але Resharper розповідає мені про те, що поле ніколи не було ініціалізовано.

Відповіді:

2 для відповіді № 1

ReSharper не визнає, що MEF будевстановлюючи змінну, і оскільки не існує жодного довідника, яким MEF буде встановлювати змінну (наприклад, якщо вона не введена в контейнер, наприклад), тому ReSharper це розумно попереджати про це. Ви можете або ігнорувати його або просто ініціалізувати поле до нуля (або за замовчуванням (T)).

Що стосується того, чи варто використовувати власністьабо поле, я думаю, що використання поля добре (якщо це не загальнодоступне). Я взагалі резервувати властивості для речей, які хочу відкрити публічно. Одним з особливих випадків для розгляду тут є те, що існують деякі проблеми, пов'язані з імпортом приватних учасників у сценаріях низького ступеню довіри, таких як SL або paritial trust, оскільки MEF використовує відображення, і ви не можете використовувати приватні відображення в деяких з цих сценаріїв.