4

フォームで宣言されたインターフェイスを持つ 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 コントロールの自己参照ループについて不平を言っています。キャスト操作はフォームを除外していません。インターフェイスキャストがインターフェイスメンバーのみを返すようにしたいだけなので、その理由はわかりません。

私は何を間違っていますか?

4

2 に答える 2