1
我已经尝试了很多次以获得此编译,我想要做的是将名称和扩展数组通过设计器进行编辑,但通过设计器进行编辑时,它会抛出错误:找不到默认的构造函数,并且不可序列化
未找到类型'Filter'的构造函数。
并编译:
属性'ExtensionList'的代码生成失败。错误是:'在'Assembly'测试,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'中键入'Filter'未被标记为可序列化。
任何人都可以帮忙吗?这是我使用的代码:
System.Collections.Generic.List<Filter> InternalExtensions = new System.Collections.Generic.List<Filter>();
[System.ComponentModel.Description(@"Sets a list of acceptable extensions to view.")]
public System.Collections.Generic.List<Filter> ExtensionList
{
get
{
return InternalExtensions;
}
set
{
InternalExtensions = value;
}
}
[Serializable()]
public class Filter : System.Runtime.Serialization.ISerializable
{
String Name;
String[] Extensions;
public Filter()
{
}
public Filter(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context)
{
info.AddValue("FilterName", Name);
info.AddValue("FilterExtensions", Extensions);
}
public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context)
{
Name = (String)info.GetValue("FilterName", typeof(String));
Extensions = (String[])info.GetValue("FilterExtensions", typeof(String[]));
}
}
是的,我把它放回到构造函数中。问题没有改变。 它并没有阻止它运行,它只是显示这个错误信息6次,然后编译。 –
@Fabian:你是说如果你再次构建它,它开始编译?这是一个警告还是一个实际的错误? –
它显示为播放错误声音的消息框,但该应用程序仍在编译。消息框在编译时显示为6或7次。 编辑:它也做到这一点,当我保存该项目。我猜这是来自设计人员,虽然在打开设计器中的属性窗口时不显示此错误,但当按下“添加”按钮时,它只会抱怨没有构造函数。 –