Our modules are setup in such a way that they use the same credentials as the core framework does.
Are you wanting to do this: string username = GetUsername(); string password = GetPassword(); DataSource dataSource = new DataSource(); dataSource.ConnectionString = GenerateConnString(username, password); moduleSqlMapper.DataSource = dataSource; DataSource's constructor is marked as obsolete. To get around compile time warnings you could do something like this: XmlNode dataSourceNode = GenerateDataSourceNode(username, password); // borrowed from DomSqlMapBuilder XmlSerializer serializer = new XmlSerializer(typeof(DataSource)); DataSource dataSource = (DataSource)serializer.Deserialize(new XmlNodeReader(nodeDataSource)); moduleSqlMapper.DataSource = dataSource; A class to generate an in memory sqlMap config XmlDocument that can be passed into Configure would be a good wiki post. --- Tuncay Baskan <[EMAIL PROTECTED]> wrote: > Ron, > > Thank you very much for you answer! I've never thought of using an > in-memory xml stream for configuration. Excellent tip!! > > I also wonder how you dynamically fill username and password. Again > you modify in memory xml? > > <dataSource > name="Dynamically Filled in at runtime" > connectionString="Dynamically Filled in at runtime" /> > </database> > > On 7/21/05, Ron Grabowski <[EMAIL PROTECTED]> wrote: > > I'm working on project whose core framework is built using > IBatisNet. > > It also supports pluggable modules via IBatisNet. This is one of > our > > example module dao classes. BaseSqlMapDao comes from here: > > > > http://tinyurl.com/8uks6 > > > http://svn.apache.org/repos/asf/ibatis/trunk/cs/npetshop/NPetshop.Persistence/MapperDao/BaseSqlMapDao.cs > > > > public class ModuleNewsArticleSqlMapDao : BaseSqlMapDao > > { > > private static SqlMapper moduleSqlMapper = null; > > > > protected override SqlMapper GetSystemSqlMap() > > { > > // TODO: add double-check > > if (moduleSqlMapper == null) > > { > > // warning: Configure is depreciated > > moduleSqlMapper = > SqlMapper.Configure(GetModuleSqlMapConfigPath()); > > > > moduleSqlMapper.DataSource = base.GetSystemSqlMap().DataSource; > > } > > return moduleSqlMapper; > > } > > > > public IList GetMany() > > { > > return ExecuteQueryForList("GetMany", null); > > } > > > > // snip > > > > } > > > > Modules are placed in their own directory and are required to have > > their own ModuleSqlMap.config file. A ModuleSqlMap.config file > looks > > something like this: > > > > <sqlMapConfig> > > <database> > > <provider name="sqlServer1.1"/> > > <dataSource > > name="Dynamically Filled in at runtime" > > connectionString="Dynamically Filled in at runtime" /> > > </database> > > <sqlMaps> > > <sqlMap embedded="Resources.NewsArticle.xml, Foo.Bar.NewsArticle" > /> > > </sqlMaps> > > </sqlMapConfig> > > > > We have providers.config at the root of the application so it does > not > > need to be specified. > > > > That code was originally written for an older version of IBatisNet. > > There are overloads now that allow you build a SqlMapper instance > from > > an XmlDocument, embedded resource, etc. You might be able to do > away > > with a ModuleSqlMap.config file. I like having the external file > > becuase I can turn caching on or off on a per module basis without > > recompiling the application. > > > > While this exact code doesn't exist yet: > > > > DomSqlMapBuilder builder = new DomSqlMapBuilder(); > > builder.AppProperty("SELECT_KEY", "SELECT @@IDENTITIY"); > > builder.AddSqlMap("newsModelSqlMap.xml"); > > builder.CacheModelsEnabled = true; > > _mapper = builder.Configure(); > > > > It could be implemented by building a sqlMap.config xml document in > > memory and passing that in to the existing Configure method. > > > > - Ron > > > > --- Tuncay Baskan <[EMAIL PROTECTED]> wrote: > > > > > 1) I want my developers (specifically module owners) to write > only > > > SqlMap files. Because there is no need to declare same > "provider", > > > same "settings", same "database" options in each module. To do > this I > > > think I need a different configuration API than the current one. > I > > > tried to analyze > IBatisNet.DataMapper.Configuration.DomSqlMapBuilder. > > > It simply reads file references from sqlMapConfig/sqlMaps and > > > constructs internal data structures. Is there any way that I can > > > programmatically specify which SqlMap files will be parsed and > > > loaded? > > > > > > 2) Since the application is multithreaded I wonder if having > multiple > > > SqlMappers cause problems? > > > > > > I know I wrote too much in this email. :-) I tried my best to > explain > > > the situation well.. > > > > > > -- > > > /tb. > > > > > > > > > > -- > /tb. >

