Добрый день. Столкнулся с проблемой, мне нужно сохранять, а затем восстанавливать состояние объекта класса Movie.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.IO;
using Newtonsoft.Json;
namespace ConsoleApplication1
{
class Program
{
interface IMan
{
void print();
}
class Actor : IMan
{
private string name_actor;
public string Name_actor
{
get { return name_actor; }
set { name_actor = value; }
}
public Actor()
{
}
public Actor(string name)
{
this.name_actor = name;
}
public void print()
{
}
}
class Movie
{
private string name;
private IMan man;
public string Name
{
get { return name; }
set { name = value; }
}
public IMan Man
{
get { return man; }
set { man = value; }
}
public Movie()
{
}
public Movie(string name, IMan m)
{
this.name = name;
this.man = m;
}
}
static void Main(string[] args)
{
string name_film = "Logan";
string name_actor = "Hugh Michael Jackman";
IMan actor = new Actor(name_actor);
// сериализация
Movie movie = new Movie(name_film, actor);
File.WriteAllText(@"f:\movie.json", JsonConvert.SerializeObject(movie));
// десериализация
Movie movie1 = JsonConvert.DeserializeObject<Movie>(File.ReadAllText(@"f:\movie.json"));
}
}
}
Сохранение происходит хорошо и в файл записывает:
{"Name":"Logan","Man":{"Name_actor":"Hugh Michael Jackman"}}
Десериализовать же не получается из-за того, что есть поле IMan в классе Movie. И собственно вопрос прозвучал в теме.