2009-05-10 11 views
0

とCfg.Configuration.SetProperties問題私がに問題がありますNHibernateは2.0:IDictionaryの

たIDictionaryを受け付けない
NHibernate.Cfg.Configuration.SetProperties() 

を:NHibernateConfigHandler

私はメッセージを取得:

エラー30のベストNHibernate.Cfg.Configuration.SetProperties(System.Collections.Generic.IDictionary)のオーバーロードされたメソッドが無効な引数を持っています

および

エラー31引数 '1':教えてください 'System.Collections.Generic.IDictionary'

に 'System.Collections.IDictionary' から変換することはできませんか?


全体法:のsetPropertiesの

/// <param name="config">NHibernate configuration</param> 
public ISessionFactory GetSessionFactoryFor(NHibernateConfigHandler config) 
{ 
if (config == null) 
    throw new ArgumentNullException("config may not be null nor empty"); 

ISessionFactory sessionFactory = GetSessionFactoryFor(config.MappingAssembly); 

// Failed to find a cached SessionFactory so make a new one. 
if (sessionFactory == null) 
{ 
    NHibernate.Cfg.Configuration cfg = new NHibernate.Cfg.Configuration(); 

    cfg.SetProperties(config.Properties); //THIS LINE 

    cfg.AddAssembly(config.MappingAssembly); 

    // Now that we have our Configuration object, create a new SessionFactory 
    sessionFactory = cfg.BuildSessionFactory(); 

    if (sessionFactory == null) 
    { 
     throw new InvalidOperationException("cfg.BuildSessionFactory() returned null."); 
    } 

    HttpRuntime.Cache.Add(config.MappingAssembly, sessionFactory, null, DateTime.Now.AddDays(7), 
     TimeSpan.Zero, CacheItemPriority.High, null); 
} 

return sessionFactory; 

}

答えて

1

署名

public NHibernate.Cfg.Configuration SetProperties(System.Collections.Generic.IDictionary<string,string> newProperties) 
    Member of NHibernate.Cfg.Configuration 

のsetPropertiesタイプIDictionaryを、すなわち一般的な辞書のパラメータを取ってあります。そしてあなたはIDictionaryを渡そうとしています。それはエラーの理由です。

NHibernateConfigHandlerのプロパティのタイプをSystem.Collections.Generic.IDictionaryに変更することができます。 OR System.Collections.Generic.IDictionaryを作成し、System.Collections.IDictionaryのすべての値をコピーします。

IDictionary(これはSystem.Collectionsにあります)よりも汎用ディクショナリ(System.Collections.Genericにあります)を使用すると常に効率的です。

関連する問題