using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;namespace WebApplication1
{
    public partial class UC : System.Web.UI.UserControl
    {
        public string MyValue { get; set; }
        protected void Page_Load(object sender, EventArgs e)
        {        }
    }    public static class ControlDao
    {
        public static UC UC()
        {
            System.Web.UI.Page page = new System.Web.UI.Page();
            UC userControl = page.LoadControl("~/UC") as UC;
            return userControl;
        }
    }    [NUnit.Framework.Test]
    public class Test
    {
        public void NewUC()
        {
            //声明一个UC用户控件
            var uc = ControlDao.UC();
            uc.MyValue = "CSND";
            //上面的代码是没有问题的,
            //但是在只更改ControlDao的前提下
            //有没有办法在这里写成
            var uc = ControlDao.UC() { MyValue = "CSDN" };  //这种写法呢? 谢谢
        }
    }
}

解决方案 »

  1.   

    我想是不是在    public static class ControlDao
        {
            [声明某个特性呢?]
            public static UC UC()
            {
                System.Web.UI.Page page = new System.Web.UI.Page();
                UC userControl = page.LoadControl("~/UC") as UC;
                return userControl;
            }
        }
      

  2.   

    在对象的get,set中使用
    要么调用对象使用
      

  3.   

    //有没有办法在这里写成
    var uc = ControlDao.UC() { MyValue = "CSDN" };  //这种写法呢? 谢谢这个不是对象属性设计器,更像是“对象初始化器”eg: var e = new Employee() { Name = "zyciis" }; 但这个功能是从编译器层面实现的,关键是“初始化” 这三个字就限定了它的使用范围。
      

  4.   


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
    </head>
    <body>
        <%
            var uc = new WebApplication1.UC()
            {
                MyValue = "zyciis"
            };
            System.Web.UI.Page page = new System.Web.UI.Page();
            page.Controls.Add(uc);
            System.IO.StringWriter sw = new System.IO.StringWriter();
            System.Web.HttpContext.Current.Server.Execute(page, sw, true);        
        %>
        <%=sw.ToString()%>
    </body>
    </html>那如果改成这样写的话
    如何为UC指定他的页面模版文件呢?
    谢谢
      

  5.   

    本以为是        var uc = new WebApplication1.UC()
            {
                MyValue = "zyciis"
            };
            uc.LoadTemplate("~/UC.ascx");//以为是这样load进行,但没有效果 sw还是什么都没有
            System.Web.UI.Page page = new System.Web.UI.Page();
            page.Controls.Add(uc);
            System.IO.StringWriter sw = new System.IO.StringWriter();
            System.Web.HttpContext.Current.Server.Execute(page, sw, true);