我大致遵循excellent series of blog posts by Kazi Manzur Rashid作爲學習練習來學習如何實現一些新的(至少對我而言)設計模式,但是我從一開始就遇到了麻煩。ArgumentException創建從ObjectContext繼承的對象的實例
我基本上覆制了他對Database
,RepositoryBase
和RepositoryBaseTests
類的代碼,但是當我嘗試運行測試,我得到一個錯誤信息說
Unable to create instance of class Booking.Infrastructure.EntityFramework.Repositories.Tests.RepositoryBaseTests. Error: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentException: Format of the initialization string does not conform to specification starting at index 0..
通過調試我已經驗證拋出異常的構造函數Database
類,它看起來像這樣:
public Database(
IConfigurationManager configurationManager,
string connectionstringName)
: base(
GetConnectionString(configurationManager, connectionstringName),
"BookingEntities")
{ // Nothing happens here }
調用base
構造函數時,引發錯誤,並且如果我硬-code我目前發送的值,它是這樣的:
: base("Dummy connStr", "BookingEntities")
爲什麼不這項工作?
確定。那麼,我可以弄清楚連接字符串不是一個有效的字符串,但是我認爲它應該能夠正常工作,就像它在文章中的例子一樣。無論如何,我還沒有建立數據庫,所以我沒有真正的連接字符串。是否有任何(簡單)的方法來建立一個虛擬字符串,它具有所有必要的部分,但實際上不會做任何事情? – 2009-09-18 22:16:25
只需使用Northwind.mdb或其他演示數據庫。 – 2009-09-19 00:18:31
問題是我正在做這個單元測試我的倉庫 - 我根本不想連接到數據庫,只是看到倉庫從'Database'對象中獲得正確的東西。 – 2009-09-19 09:37:48