我知道关于这个主题有很多问题,但似乎没有一个对我的情况有帮助,所以我发布了另一个问题。
我收到了一个项目,并要求将该项目拆分为单独的控件。 最初,项目中有一个名为“events”的文件夹,它引用了一个名为“EventsRssFeedControl”的控件。 我的老板要求我将事件和 EventsRssFeedControl 分开,并将它们放在自己的项目中。 所以我就这么做了。 我更改了所有名称空间并编译了所有内容。 但是当我尝试导航到那里时,出现错误。 描述:编译服务此请求所需的资源期间发生错误。请查看以下具体错误详细信息并适当修改您的源代码。
编译器错误消息:CS0120:非静态字段、方法或属性“System.Web.UI.Control.Controls.get”需要对象引用
来源错误:
<input type="hidden" name="selectedDate" value="<%= UMNEventsRssFeedControl.Controls.UMNEventsRssFeedControl.SelectedDateStr %>"/>
我的代码看起来像这样,我对称其为“非静态”感到困惑,并且更困惑为什么它不起作用。
private static string _selectedDateStr;
public static string SelectedDateStr
{
get { return _selectedDateStr; }
set { _selectedDateStr = value; }
}
它适用于旧项目,唯一改变的是命名空间和对新命名空间的调用。
问题其实不在
SelectedDateStr
。
UMNEventsRssFeedControl.Controls
正在请求 Controls
的属性 UMNEventsRssFeedControl
的静态 getter。显然,Controls
是所提到的类的实例属性。
您需要提供
UMNEventsRssFeedControl
的实例才能使代码正常工作。
您的命名空间和类的名称相同。不要这样做。