を期待して、私は次のようしている:は、インターフェイスを実装していないオブジェクトを追加しますが、すべての資格を満たしている、リストにインターフェース
List<IReport> myList = new List<IReport>();
Report myReport = TheirApi.GetReport();
MYREPORTはiReportは、すべての資格を満たしているが、私は持っていないため、iReportはを実装することはできませんTheirApiのソースへのアクセス。 IReport型にキャストすると明らかにnullになり、インターフェイスに匿名型をキャストできないことがわかります。
ここにオプションはありますか?
ラッパークラスは、医師が注文したものだけだった。
ReportServices.GetAllCustomReports().ToList().ForEach(customReport => _customReports.Add(new ReportWrapper(customReport)));
public class ReportWrapper : IReport
{
private Report inner;
public int ID
{
get { return inner.ID; }
set { inner.ID = value; }
}
public string Name
{
get { return inner.Name; }
set { inner.Name = value; }
}
public ReportWrapper(Report obj)
{
inner = obj;
}
}
わかりました。ありがとうございました! –
残念ながら、これを行う自動化された方法はありません。さらに助けが必要な場合は、コメントを残してください。 =) –
いいえ、これは絶対に完璧に機能しました!私のソリューションで編集。 –