在Global.asax注册Castle Winsdor [英] Register Castle Winsdor in Global.asax

查看:136
本文介绍了在Global.asax注册Castle Winsdor的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述





任何人都可以通过 Application_Start Castle.Winsdor 告诉我如何注册界面>事件 Global.asax &然后如何访问web.page上的注册界面。



如果有其他适当的方法请告诉我。



我们非常感谢任何帮助。



在此先感谢。

Hi,

Can anybody please let me know how to register interface using Castle.Winsdor in Application_Start Event of Global.asax & then how to access the registered interface on the web.page.

If there is another appropriate approach please let me know.

Any help will be highly appreciated.

Thanks In Advance.

推荐答案

看看这里: Asp.Net MVC中的Castle Windsor教程 [ ^ ]


您好Maciej,



我以下面的方式实现它。能不能让我知道我是否正确实施了:



Global.asax 注册Windsor Container: -

------------------------------------------------- ----

Hi Maciej,

I implemented it in below fashion. Can you please let me know whether i implemented properly :

Register Windsor Container in Global.asax :-
-----------------------------------------------------
private static WindsorContainer _container = null;

       /// <summary>
       /// Get Winsdor Container
       /// </summary>
       public static WindsorContainer RegisteredWinsdorContainer
       {
           get { return _container; }
       }

       protected void Application_Start(object sender, EventArgs e)
       {
           CreateAndRegisterMethods();
       }

       /// <summary>
       ///
       /// </summary>
       private static void CreateAndRegisterMethods()
       {
           _container = new WindsorContainer();
           _container.AddComponent("UserManager", typeof (IUserManager),
                                   typeof (UserManager));
           _container.AddComponent("AddressManager", typeof (IAddressManager),
                                   typeof (AddressManager));
       }







创建一个通用类来查找已注册的接口 WindsorContainerDI.cs : -






Create a generic class to find registered interfaces WindsorContainerDI.cs :-

public class WindsorContainerDI<T>                                                             
    {
        /// <summary>
        ///
        /// </summary>
        /// <param name="winsdorInterface"></param>
        public static void GetWinsdorContainer(ref T winsdorInterface)
        {
            WindsorContainer container = Global.RegisteredWinsdorContainer;
            if(container!=null)
            {
                winsdorInterface = container.Resolve<T>();
            }
        }
    }                                                                              





以这种方式访问​​界面的方法默认.aspx.cs





Access the methods of interface in this fashion Default.aspx.cs

/// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {
            IUserManager userManagerContainer = null;

            WindsorContainerDI<IUserManager>.GetWinsdorContainer(ref userManagerContainer);

            if(userManagerContainer!=null)
            {
                UserObject[] userObj = userManagerContainer.GetUsers();
            }

        }


这篇关于在Global.asax注册Castle Winsdor的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆