日期:2014-05-17  浏览次数:20518 次

求WebForm版构造函数注入例子~新年快乐~
求WebForm版构造函数注入例子~新年快乐~
求WebForm版构造函数注入例子~新年快乐~
求WebForm版构造函数注入例子~新年快乐~

如题~

------解决方案--------------------
做不到吧,被实例化的是派生类
------解决方案--------------------
google emit,不过meta programming不适合C#这样的语言。就好比oop不适合VB一样。
------解决方案--------------------
引用:
求WebForm版构造函数注入例子~新年快乐~
求WebForm版构造函数注入例子~新年快乐~
求WebForm版构造函数注入例子~新年快乐~

如题~

是不是为了IoC?
下面的例子是用 HttpModule/CustomAttribute/Windsor 实现的注入
   // index.aspx.cs
    public partial class IndexPage : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Logger.Write("page loading");
        }

        [Inject]
        public ILogger Logger { get; set; }
    }

    // WindsorHttpModule.cs
    public class WindsorHttpModule : IHttpModule
    {
        private HttpApplication _application;
        private IoCProvider _iocProvider;

        public void Init(HttpApplication context)
        {
            _application = context;
            _iocProvider = context as IoCProvider;

            if(_iocProvider == null)
            {
                throw new InvalidOperationException("Application must implement IoCProvider");
            }

            _application.PreRequestHandlerExecute += InitiateWindsor;
        }

        private void InitiateWindsor(object sender, System.EventArgs e)
        {
            Page currentPage = _application.Context.CurrentHandler as Page;
            if(currentPage != null)
            {
                InjectPropertiesOn(currentPage);
                currentPage.InitComplete += delegate { InjectUserControls(currentPage); };
          &n