NHibernate 2.0: Cfg.Configuration.SetProperties العدد مع IDictionary
-
20-08-2019 - |
سؤال
ولدي مشكلة مع:
NHibernate.Cfg.Configuration.SetProperties()
وليس قبول IDictionary: NHibernateConfigHandler
وأحصل على الرسائل:
وخطأ 30 انتهت المباراة طريقة أفضل طاقتها ل"NHibernate.Cfg.Configuration.SetProperties (System.Collections.Generic.IDictionary)" لديه بعض الحجج الباطلة
و
وخطأ 31 حجة '1': لا يمكن تحويل من 'System.Collections.IDictionary' إلى 'System.Collections.Generic.IDictionary'
يرجى تقديم المشورة؟
وأسلوب كلها:
/// <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;
و}
المحلول
وتوقيع SetProperties هو
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. أو إنشاء System.Collections.Generic.IDictionary ونسخ كل القيم من System.Collections.IDictionary.
وانها دائما كفاءة استخدام قاموس عام (والذي هو على System.Collections.Generic) على IDictionary (والذي هو على System.Collections).