0
我有两个项目的解决方案:自定义控件枚举财产问题
CustomControls
定制控件(的.cs文件)WebPages
有aspx页面
一个控件有属性如下:
----定义于Platform.CustomControls
命名空间-------
[Category("Search Mode"),
DefaultValue(SearchTextBoxModeEnum.global),
Personalizable(PersonalizationScope.Shared),
TypeConverter("String"),
WebBrowsable(true),
WebDisplayName("SearchTextBoxMode"),
WebDescription("SearchTextBoxMode")]
public SearchTextBoxModeEnum SearchTextBoxMode
{
set;
get;
}
----在Platform.CustomControls.Interface
命名空间中定义-------
public enum SearchTextBoxModeEnum
{
global,
forms,
products,
internet
}
该项目成功生成。
当我在我的网页项目中引用此项目并在控件标记中添加属性时,其他所有枚举都会出现,但“internet”不会显示在intellisense中。
<Platform:searchtextbox id="SearchTextBox3" runat="server" SearchTextBoxMode="internet" pagename="xyz">
</OnlinePlatform:ecmssearchtextbox>
我运行页面在浏览器中,同时得到一个错误:
不能“为‘SearchTextBoxMode打造’从它的字符串表示”网络类型Platform.CustomControls.Interface.SearchTextBoxModeEnum的对象'财产。
我检查所有添加的参考信息(在对象浏览器和程序Ildasm.exe,我可以看到该属性)。
我怀疑有一部分代码正在分析'SearchTextBoxModeEnum'。查找这个枚举的所有引用。 – noobob 2013-05-13 14:32:36
感谢您的回复。但其余的房产都很好。除了将它添加到SearchTextBoxEnum之外,我没有做任何事情。至少我应该在代码标记中的intellisense中获得它。 – 2013-05-13 14:37:47
好的。但是如果项目中的某个地方有枚举值,例如一个switch语句呢?现在您添加了“互联网”,您应该为此新值添加一段代码。在枚举上按Shift + F12并检查其所有引用 – noobob 2013-05-13 14:45:26