功能我有一些功能,在這裏,例如被定義爲使用一個MemoryStream與期望一個文件流
private int WriteLogikParameterTyp(FileStream filestream)
,我不能改變。我希望他們寫入一個MemoryStream對象。這可能嗎?
功能我有一些功能,在這裏,例如被定義爲使用一個MemoryStream與期望一個文件流
private int WriteLogikParameterTyp(FileStream filestream)
,我不能改變。我希望他們寫入一個MemoryStream對象。這可能嗎?
編號
FileStream是一個具體的實現。
但這是一個私人方法,所以應該很容易改變,因爲你可以找到所有的內部使用?建議用Stream而不是FileStream替換方法簽名。
那麼......除非你創建一個臨時文件,寫入它然後將其讀入內存。
由於你不能改變函數簽名來接受更通用的類型..我建議寫出一個臨時文件,然後將內容讀入一個MemoryStream實例。
道歉;我毆打你的臨時文件解決方案。我們必須在同一時間點擊'提交':) – 2009-01-28 10:44:25
號
如果您沒有訪問它們,你可以使用反射來看看他們是如何工作的,並實現自己的版本,一個MemoryStream。這是否合法是另一回事......
「這是否合法」 - 我確信沒有人會逮捕他:) – configurator 2009-01-28 10:54:26
否.FileStream不公開可以調用的構造函數,所以您不能從它繼承來模擬它。
建議;
重命名這樣
private int WriteLogikParameterTyp_Ex(Stream stream);
該方法然後重新創建原始簽名等;
private int WriteLogikParameterTyp(FileStream filestream)
{
return WriteLogikParameterTyp_Ex(filestream);
}
爲什麼不簡單地更改方法簽名?它不會破壞現有的使用代碼,因爲FileStream是從流派生的... – configurator 2009-01-28 10:56:57
這只是一個例子。那個是私人的,其他的是公開的。其中有很多。致歉; – Andre 2009-01-28 10:44:22