我是Dependency Injection的新手,我试图让Json.Net反序列化一个包含接口成员的类。我收到以下错误。
“无法创建IBioMetricCodeAttributes类型的实例.Type是接口或抽象类,无法实例化。”
以下是我试图让Json.Net反序列化的类。
public sealed class EntryContract : IEntryContract
{
[JsonIgnore] public int EntryId { get; set; }
public string EntryTypeKey { get; set; }
public string ApplicationKey { get; set; }
public string PersonKey { get; set; }
public string ScreeningDateTime { get; set; }
[JsonIgnore] public int ApplicationId { get; set; }
[JsonIgnore] public int EntryTypeId { get; set; }
[JsonIgnore] public int? HealthProfileId { get; set; }
[JsonIgnore] public Guid ChangeSetId { get; set; }
[JsonIgnore] public DateTime EntryDate { get; set; }
[JsonIgnore] public DateTime SavedDate { get; set; }
[JsonIgnore] public string ExternalId { get; set; }
[JsonIgnore] public int OriginatingApplicationId { get; set; }
public List<IBioMetricCodeAttributes> CodeAttributes { get; set; }
public List<IBioMetricCountAttributes> CountAttributes { get; set; }
public List<IBioMetricDateAttributes> DateAttributes { get; set; }
public List<IBioMetricEnumAttributes> EnumAttributes { get; set; }
public List<IBioMetricFreeFormAttributes> FreeFormAttributes { get; set; }
public List<IBioMetricMeasurementAttributes> MeasurementAttributes { get; set; }
[JsonIgnore]
public List<IBioMetricXmlAttributes> XmlAttributes { get; set; }
}
正在加载我的Ninject模块。它如下:
public class NexusModule : NinjectModule
{
public override void Load()
{
Bind<IBioMetricCodeAttributes>().To<BioMetricCodeAttributes>();
Bind<IBioMetricCountAttributes>().To<BioMetricCountAttributes>();
Bind<IBioMetricDateAttributes>().To<BioMetricDateAttributes>();
Bind<IBioMetricEnumAttributes>().To<BioMetricEnumAttributes>();
Bind<IBioMetricFreeFormAttributes>().To<BioMetricFreeFormAttributes>();
Bind<IBioMetricMeasurementAttributes>().To<BioMetricMeasurementAttributes>();
Bind<IBioMetricXmlAttributes>().To<BioMetricXmlAttributes>();
}
}
错误是在以下代码行引发的。
return JsonConvert.DeserializeObject<List<EntryContract>>(GetBiometricData(nexusId, entryTypes));
我正在使用Newtonsoft.Json版本6.0和Ninject版本3.2.2。
对此有任何帮助将不胜感激。