public static JMXFactory Create(IServiceProvider services, MdbContext workMdbContext) { if (_schemaFactory == null) { var mdbFactory = services.GetRequiredService <IMdbContextFactory>(); var sysCatMdb = mdbFactory.GetContext(Strings.SysCatConnection); var schemaFactory = CreateFactoryFromMdbContext(services, sysCatMdb); if (_schemaFactory == null) { lock (obj4Lock) _schemaFactory = schemaFactory; } } return(CreateFactoryFromMdbContext(services, workMdbContext)); }
private static JMXFactory CreateFactoryFromMdbContext(IServiceProvider services, MdbContext mdb) { var l = ImplementsList.GetTypes(typeof(JMXFactory)); if (l == null) { //No class inherited from JMXFactory defined throw new InvalidOperationException(Strings.S031_MetaStack_Core_ORM_JMXFactory_Create_1); } string dbProviderName = mdb.ProviderName; JMXFactory factory = null; foreach (var t in l) { if (System.Attribute.GetCustomAttributes(t)? .FirstOrDefault(attr => attr.GetType() == typeof(DBRefAttribute) && (attr as DBRefAttribute) .DBProviderName .Equals(dbProviderName, StringComparison.OrdinalIgnoreCase)) is DBRefAttribute att) { factory = (JMXFactory)t.CreateInstance(mdb); break; } } if (factory == null) { //No class inherited from JMXFactory contained attribute of type DBRefAttribute defined throw new InvalidOperationException(Properties.Strings.S031_MetaStack_Core_ORM_JMXFactory_Create_2); } factory._services = services; factory._mdb = mdb; factory._logger = services .GetRequiredService <ILoggerProvider>() .CreateLogger(typeof(JMXFactory).FullName); return(factory); }
public JMXProvider(JMXFactory factory) { _factory = factory; }
public JMXRepo(JMXFactory factory) { _factory = factory; }
public JMXBalance(JMXFactory factory) { _factory = factory; }