如何延迟在Asp.net用户控件中指定T的需要?

本文关键字:控件 用户 何延迟 延迟 net Asp | 更新日期: 2023-09-27 18:05:50

我的困境:

  • 我有一个POCO:"ReportSource"是通用的。
  • 我有一个用户控件包装一些报表构建逻辑。
  • 我的用户控件定义了一个ReportSource属性,但它最终将是调用用户控件分配该ReportSource属性的页面的工作。

如何在不指定T的情况下定义用户控件中的属性?顺便说一句,我尝试(只是为了云鸟)让用户控制通用…结果很糟糕。

public ReportSource<T> ReportSource {get; set;}

(注意,我已经标记为c#和VB.net…c#是我的标准,但我不得不处理w/legacy…

如何延迟在Asp.net用户控件中指定T的需要?

您可以将T特定的逻辑移动到非通用的ReportSource中吗?这"延迟"了指定T的需要,直到调用者特别需要T或直到ReportSource需要T。换句话说,ReportSource将具有接受T的泛型方法,否则将完全封装或隐藏T

如果你的控件不知道T,那么它就不能利用它。

也许您可以通过为ReportSource<T>声明一个非泛型接口来解决问题,其中包括控件需要利用的部分?