这听起来像是 T4 的工作!
您可以使用 T4 和反射来创建一个包含所有这些属性的部分类。如果它只有一个类,那么它可能比手动完成更多工作;我想你需要决定你想要使用它的频率。
编辑:
T4 表示:文本模板转换工具包
它内置于 Visual Studio 中,允许您编写模板,为您生成代码。
当您需要编写任何类型的重复或样板代码时,它会很有用。
我已经为你做了一个开始。在您的解决方案中创建一个名为 MyUserControl.tt 的新文件并复制下面的代码。
保存后,将出现一个名为 MyUserControl.cs 的新文件并列出所有属性。
由于这会生成一个部分类,因此您需要调整类名和命名空间以匹配现有用户控件的名称。我假设您的文本框的名称是 Target,但您显然也可以这样做。
<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ output extension=".cs" #>
<#@ assembly name="System.Web" #>
<#@ import namespace="System.Reflection" #>
public partial class MyUserControl
{
<#
PropertyInfo[] properties = typeof(System.Web.UI.WebControls.TextBox).GetProperties(
BindingFlags.Public | BindingFlags.Instance);
foreach (PropertyInfo property in properties)
{
WriteLine(string.Format(" public {0} {1}", property.PropertyType.FullName, property.Name));
WriteLine(" {");
if(property.GetGetMethod() != null)
{
WriteLine(" get { return Target." + property.Name + "; } ");
}
if(property.GetSetMethod() != null)
{
WriteLine(" set { Target." + property.Name + " = value; } ");
}
WriteLine(" }");
WriteLine("");
}
#>
}