gpt4 book ai didi

具有复杂属性的 ASP.NET 自定义控件

转载 作者:行者123 更新时间:2023-12-02 05:08:25 25 4
gpt4 key购买 nike

我正在开发一个自定义控件 (4.0),我想知道如何在不重写的情况下将业务类作为属性重用。

我的业务层组件中有一组类(简化):

public class LatLng
{
public decimal Lat { get; set; }
public decimal Lng { get; set; }
}

public class MapOptions
{
...
public LatLng Center { get; set; }
...
}

etc...

我想要的是重用 MapOptions 类作为属性,我的自定义控件是这样的:

public class MyControl : WebControl
{
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), PersistenceMode(PersistenceMode.InnerProperty)]
public MapOptions MapOptions
{
...

get
{
return this.ViewState["MapOptions"] as MapOptions;
}
set
{
this.ViewState["MapOptions"] = value;
}

...
}
}

但通过这种方式,我无法将 LatLng(以及 MapOptions 用作属性的其他类)的属性视为 MapOptions 标记的内部部分。仅作为属性。所以在标记中我可以写:

<rec:MyControl ID="control1" runat="server" Width="900" Height="500">
<MapOptions Center="" />
</rec:MyControl>

但是通过这种方式,我失去了所有 LatLng 公开的智能感知,我正在寻找一种解决方案来获得这个:

<rec:MyControl ID="control1" runat="server" Width="900" Height="500">
<MapOptions>
<Center Lat="12.0" Lng="2.0" />
</MapOptions>
</rec:MyControl>

有什么建议吗?

最佳答案

尝试添加标签[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), PersistenceMode(PersistenceMode.InnerProperty)]public class LatLng

关于具有复杂属性的 ASP.NET 自定义控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8521465/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com