【发布时间】:2016-07-25 18:29:32
【问题描述】:
我有一个包含内部部分类的大部分类和一个包含很多静态成员的非部分类:
public partial class kField
{
public partial class Campaign
{
public class Brand
{
public static kFieldClass id = new kFieldClass("id", typeof(long));
public static kFieldClass abc = new kFieldClass("abc", typeof(long));
...
}
}
}
通过反射,我构建了一个列表,其中包含所有具有静态成员的类。
现在我想以某种方式将这些成员之一的“链接”存储在另一个类的属性中。
[DefaultValue(null)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public kFieldClass Field
{
get; set;
}
我为视觉工作室(在树视图中显示孔列表)构建了一个自定义编辑器(主要基于 this),效果很好。
我现在的问题是,设计器无法将静态实例 (kFieldClass) 存储在 Field 属性中。 所以我认为我有两个选择
将“Field”属性设为字符串并使用点符号 (kField.Campaign.Brand.id) 存储信息,然后通过反射获取静态实例。 问题:我不能有一个字符串属性的自定义编辑器吗?或者有什么办法吗?
为属性/kFieldClass 制作一些序列化程序,以便设计人员可以存储该值。我认为这是不可能的,也不是正确的方法。
我已经为该属性“玩”了一个自定义 TypeConverter,但在与自定义编辑器的交互方面我没有任何运气。
【问题讨论】:
-
Kalfany,我已将您的问题回滚为原始形式,并将您的修改移至您的自我回答中。我们相信问答格式可以帮助人们找到相关的问题和对他们有帮助的答案。
标签: c# .net winforms serialization designer