2
基本上,我有以下幾點:MEF - 進口必須以某種方式設置,否則它們可能爲空?
[Import]
private IEventAggregator EventAggregator { get; set; }
public void DoSomething()
{
//Should I bother to check for null here before using EventAggregator?
}
幾件事情在這裏第一次:
- 有沒有可能對我的應用程序沒有一個MEF運行時異常,並留下該屬性爲空?
- 既然該屬性是私人的,我應該麻煩檢查每個方法中的null?我在想,如果有一天我決定不使用MEF並做其他事情會怎麼樣。我仍然會確保它在實例化時不能爲空,所以我需要防範它嗎?
- 如果它被保護起來怎麼辦?如果這給了我足夠的理由來防止null,因爲現在擴展類可以將它設置爲null。或者,這是我不應該擔心的事情(其他程序員擴展我的課程並用它做出愚蠢的事情)。
問題2而且對於問題:我們應該覈對空,即使我們正在檢查對類中保持財產(即我們應該警惕我們班沒有允許的狀態場景)。