我编写了一个继承自的控件,System.Web.UI.WebControls.DropDownList所以我前面没有任何代码用于该控件,但我仍然想设置 OutputCache 指令。我有什么方法可以在 C# 代码中设置它,比如使用属性或类似的东西?  
我特别希望能够复制该VaryByParam物业
我编写了一个继承自的控件,System.Web.UI.WebControls.DropDownList所以我前面没有任何代码用于该控件,但我仍然想设置 OutputCache 指令。我有什么方法可以在 C# 代码中设置它,比如使用属性或类似的东西?  
我特别希望能够复制该VaryByParam物业
我意识到这是一个非常古老的问题,但仍然值得回答。
您所说的不是用户控件,而是自定义控件。你想用 OutputCache 做的事情可以简单地用 Context Cache 来完成。
在您获取数据并绑定到 DropDownList 的代码中,执行以下操作:
        List<Object> listOfObjects = null;
//assuming a List of Objects... it doesn't matter whatever type of data you use
        if (Context.Cache["MyDataCacheKey"] == null)
        {
            // data not cached, load it from database
            listOfObjects = GetDataFromDB();
//add your data to the context cache with a sliding expiration of 10 minutes.
            Context.Cache.Add("MyDataCacheKey", listOfObjects, null,
                System.Web.Caching.Cache.NoAbsoluteExpiration,
                TimeSpan.FromMinutes(10.0),
                System.Web.Caching.CacheItemPriority.Normal, null);
        }
        else
            listOfObjects = (List<Object>)Context.Cache["MyDataCacheKey"];
        DropDownList1.DataSource = listOfObjects;
        DropDownList1.DataBind();
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));
Response.Cache.SetCacheability(HttpCacheability.Server);
Response.Cache.SetValidUntilExpires(true);