我在ASP.NET缓存中有一个由UserControl组成的缓存控件对象。
我喜欢访问我的控件并对其进行复制以自由更改它,而不会对基本缓存的控件产生任何影响。

最佳答案

你好
我找到了想要的代码。
我把它放在这里也许对您也有帮助。

/// <summary>
/// this method makes a copy of object as a clone function
/// </summary>
/// <param name="o"></param>
/// <returns></returns>
public static object Clone_Control(object o)
{

    Type type = o.GetType();
    PropertyInfo[] properties = type.GetProperties();
    Object retObject = type.InvokeMember("", System.Reflection.BindingFlags.CreateInstance, null, o, null);
    foreach (PropertyInfo propertyInfo in properties)
    {
        if (propertyInfo.CanWrite)
        {
            propertyInfo.SetValue(retObject, propertyInfo.GetValue(o, null), null);
        }
    }
    return retObject;
}

关于c# - 创建一个ASP.NET Control对象的副本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5555674/

10-12 13:11