Wednesday, October 14, 2015
Sample Setup for Strucutremap 3+
Download Strucutremap and related packages from nugget
Install-Package StructureMap -version 3.1.6.186Install-Package StructureMap.MVC4 -version 3.0.2.115
Install-Package StructureMap.Web -version 3.1.6.186
Goto App Start Strucutremap.mvc
Replace the iniliaslizer line with this to use the Default JCDC initializer
IContainer container = StructureMapIoC.Initialize<DefaultRegistry>();
Comment out IOC.Cs in Dependency resolver
Put the following in DefaultRegistry.cs
// --------------------------------------------------------------------------------------------------------------------
// <copyright file="DefaultRegistry.cs" company="Web Advanced">
// Copyright 2012 Web Advanced (www.webadvanced.com)
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// </copyright>
// --------------------------------------------------------------------------------------------------------------------
using JCDCTools.AdoAccess.BusinessObjects;
using JCDCTools.AdoAccess.Interfaces;
using JCDCTools.Core.Logging.Interfaces;
using JCDCTools.Core.User.BusinessObjects;
using JCDCTools.Core.User.Interfaces;
using JCDCTools.Core.Utilities;
using JCDCTools.Core.Utilities.BusinessObjects;
using JCDCTools.Core.Utilities.Interfaces;
using JCDCTools.NhAccess.BusinessObjects;
using JCDCTools.NhAccess.Interfaces;
using JCDCTools.Users.Bll.Interfaces;
using JCDCTools.Users.DAL.Interfaces;
using JCDCTools.Utilities.Bll.Interfaces;
using StructureMap.Pipeline;
using StructureMap.Web.Pipeline;
using TacToolsTest.BLL.Interfaces;
using TacToolsTest.DAL.Interfaces;
using TacToolsTest.Jcdc.EO;
using TacToolsTest.Jcdc.Map;
using TacToolsTest.Reporting;
namespace TACAdmin3G.DependencyResolution
{
public class DefaultRegistry : JcdcRegistry
{
#region Constructors and Destructors
public DefaultRegistry()
{
Scan(
scan =>
{
scan.AssemblyContainingType< ICenterBLL >(); // TacToolsTest BLL
scan.AssemblyContainingType< IEpmsContractsBLL >(); // TacToolsTest BLL
scan.AssemblyContainingType< ICenterDAL >(); // TacToolsTest DAL
scan.AssemblyContainingType< IWebAccess >(); // JCDCTools.Core
scan.AssemblyContainingType< IUserMaintBLL >(); // JCDCTools.Users
scan.AssemblyContainingType< IAdoHelper >(); // JcdcTools.AdoAccess
scan.AssemblyContainingType< INHFactory >(); // JcdcToools.NhAccess
scan.AssemblyContainingType<IEncryption>(); // JcdcTools.Utilities
scan.AssemblyContainingType< ISSOAuthenticationUserDataBLL >();
scan.AssemblyContainingType< ISSOAuthenticationUserDataDAL >();
scan.AssemblyContainingType< IReportGenerator >();
//scan.AssemblyContainingType<IETA640DAL>();
scan.AssemblyContainingType<IAdoHelper>();
scan.AssemblyContainingType<INetLog>();
scan.LookForRegistries();
scan.WithDefaultConventions();
});
// For<IWebAccess>().LifecycleIs<HybridLifecycle>().Use<WebAccess>().Named( "default" );
For<IWebAccess>().LifecycleIs<HybridLifecycle>().Use<WinFormAccess>().Named( "default" );
For<INetLog>()
//.LifecycleIs<HybridLifecycle>()
.Use<JCDCTools.Core.Logging.BusinessObjects.NetLog>().Singleton();
For<IAdoHelper>().Use<SybaseHelper>()
.Named( "JCDC" )
.Ctor<string>( "ConnectStringName" ).Is( "SybaseDB" )
.Ctor<string>( "TimeOutStringName" ).Is( "SybaseDBCommandTimeout" );
For<IAdoHelper>().Use<SybaseHelper>()
.Named( "SPAMIS" )
.Ctor<string>( "ConnectStringName" ).Is( "SpamisDB" )
.Ctor<string>( "TimeOutStringName" ).Is( "SybaseDBCommandTimeout" );
For<IUser>()
.LifecycleIs<HybridLifecycle>()
.Use<UserByMock>();
For<INHFactory>().Use<NHFactory>()
.Named( "JCDC" )
.LifecycleIs<SingletonLifecycle>()
.Singleton();
For<INHSession>().Use<NHSession>()
.Named( "JCDC" )
.LifecycleIs<HybridLifecycle>()
.Ctor<string>( "ConnectStringName" ).Is( "XXXXX" )
.Ctor<string>( "TimeOutStringName" ).Is( "SybaseDBCommandTimeout" )
.Ctor<string>( "DBNameAndHasTran " ).Is( "XXXXX" );
For<INHFactory>().Use<NHFactory>()
.Named( "JCDC_HasTrans" )
.LifecycleIs<SingletonLifecycle>()
.Singleton();
For<INHSession>().Use<NHSession>()
.Named( "JCDC_HasTrans" )
.LifecycleIs<HybridLifecycle>()
.Ctor<string>( "ConnectStringName" ).Is( "XXX" )
.Ctor<string>( "TimeOutStringName" ).Is( "SybaseDBCommandTimeout" )
.Ctor<string>( "DBNameAndHasTran " ).Is( "XX" );
For<INHFactory>().Use<NHFactory>()
.Named( "JCDC_HasNoTrans" )
.LifecycleIs<SingletonLifecycle>()
.Singleton();
For<INHSession>().Use<NHSession>()
.Named( "JCDC_HasNoTrans" )
.LifecycleIs<HybridLifecycle>()
.Ctor<string>( "ConnectStringName" ).Is( "SybaseDB" )
.Ctor<string>( "TimeOutStringName" ).Is( "SybaseDBCommandTimeout" )
.Ctor<string>( "DBNameAndHasTran " ).Is( "JCDC_HasTrans" );
For<INHFactory>().Use<NHFactory>()
.Named( "SPAMIS_HasTrans" )
.LifecycleIs<SingletonLifecycle>()
.Singleton();
For<INHSession>().Use<NHSession>()
.Named( "SPAMIS_HasTrans" )
.LifecycleIs<HybridLifecycle>()
.Ctor<string>( "ConnectStringName" ).Is( "XXXXX" )
.Ctor<string>( "TimeOutStringName" ).Is( "SybaseDBCommandTimeout" )
.Ctor<string>( "DBNameAndHasTran " ).Is( "XXXXXX" );
}
/// <summary>
/// Initializes the objects after the Structuremap configure method has finished, this is because only then can you get objects from the container - EWB.
/// </summary>
/// <Programmer>Brown.ericw</Programmer>
/// <CreateDate>10/7/2015-11:46 AM</CreateDate>
public override void InitObjectsPostConfigure()
{
INHFactory jcdcFactory;
jcdcFactory = JcdcObjectFactory.GetNamedInstance<INHFactory>( "XXXXX" );
jcdcFactory.BuildFactoryByConfigFile<StudentEO, StudentEOMap>( "~/XXXXX.config" );
jcdcFactory = JcdcObjectFactory.GetNamedInstance<INHFactory>( "XXXXX_HasTrans" );
jcdcFactory.BuildFactoryByConfigFile<StudentEO, StudentEOMap>( "~/XXXXX.config" );
jcdcFactory = JcdcObjectFactory.GetNamedInstance<INHFactory>( "XXXXX_HasNoTrans" );
jcdcFactory.BuildFactoryByConfigFile<StudentEO, StudentEOMap>( "~/XXXXXb.config" );
}
#endregion
}
}
Subscribe to:
Posts (Atom)