2
有沒有辦法爲一個開放的泛型類型聲明一個vaiable?如何爲open generic類型聲明變量?可能?
鑑於:用戶從工廠方法中獲得了一個通用類Logger。有沒有辦法讓一個可以容納任何記錄器的變量?
現在,Logger只從Logger繼承,因爲它能夠爲實例聲明一個變量而不關心在那裏記錄了哪種類型。
我使用MEF,並且在導出中,我可以使用類似[Export(typeof(Logger <>))]的語法來導出泛型類型...(指定導入時的確切類型),因此有一些支持對於開放類型(至少在typeof中)。我現在需要的是一種語法,如
Logger <> Logger {get;組; }
有沒有可能做類似的事情?這個特殊的語法讓我「需要類型」。
爲什麼不使用'object'? –
@Lasse:我猜是因爲'myObject.Log(something)'會產生一個編譯錯誤(即該變量不是* only *用於存儲引用)。 'dynamic'會是一個選項,但是你會失去編譯時語法檢查。 – Heinzi
就是這樣。我向日誌服務器尋求類型X的記錄器(對於配置),但我不想記錄到特定的genric類型,所有的東西都是基礎的一部分。我有時可能會通過記錄器(子類等),他們不需要知道。我試圖避免(在這裏和其他情況下)基類JUST有一個。 – TomTom