我开发在C#中,有一个表格上声明的接口的应用程序:演员接口不排除形式成员
public partial class frmProjectForm : Form, IProjectInfo
{
}
public interface IProjectInfo
{
string ProjectName { get; set; }
string ProjectTitle { get; set; }
string ProjectDescription { get; set; }
string ProjectAuthor { get; set; }
string ProjectCopyright { get; set; }
string ProjectTrademark { get; set; }
string ProjectCreationDate { get; set; }
string ProjectVersion { get; set; }
string ProjectFileName { get; }
string ProjectFilePath { get; }
string FullProjectPath { get; }
}
某处在应用程序,我想这样做:
frmProjectForm f = new frmProjectForm();
f.ShowDialog(this);
...
...
IProjectInfo getProjectInfoMembersOnly = (IProjectInfo)f;
// persist the IProjectInfo members to JSON
string project = JsonConvert.SerializeObject(getProjectInfoMembersOnly);
JsonConvert.SerializeObject
方法正在炸毁并抱怨Button控件上的某些自我引用循环。铸造操作不排除窗体,我不知道为什么,因为我只是想接口转换只返回接口成员。
我在做什么错?
我不太清楚,但我想只是投实例的界面不会隐藏实例属性序列化时...你还在序列化实例 – derape
你为什么要继承一个形式,如果你只需要在界面属性? – AMember
@AMember我实际上并没有继承一个表单 - 它是一个继承了一个接口的表单。我想创建一个标准化表单,我可以使用'IProjectInfo'接口作为方法参数,而不是指定具体的表单实例。 – Intrepid