これはスタック上の多くの場所に回答されており、可能な限り最良の回答はHereです。私はそれと他の多くの答えも試してみました。私は私のインターフェイスのコレクションを返すライブラリ(IMasterAutoSuggestOutlet
)ICollectionを<Interface>からICollectionに変換する<Class> [UWP] c#6.0
public interface IMasterAutoSuggestOutlet : IBaseAutoSuggestOutlet
{
IAddressData AddressData { get; }
IPlaceActivity PlaceActivity { get; }
string ELoc { get; }
Geopoint ExactLocation { get; }
Geopoint EntranceLocation { get; }
LocationType TypeOfLocation { get; }
}
を持っている今、私は自分のアプリケーション内の別のページからこのインタフェースデータを転送します。
私の具象クラス、
である私は何をしたいpublic class MasterAutoSuggestModel : IMasterAutoSuggestOutlet
{
public IAddressData AddressData { get; set; }
public IPlaceActivity PlaceActivity { get; set; }
public string ELoc { get; set; }
public Geopoint ExactLocation { get; set; }
public Geopoint EntranceLocation { get; set; }
public LocationType TypeOfLocation { get; set; }
}
は、ICollectionへのICollectionを変換します。インタフェースはシリアル化することはできませんので、私はこのインタフェースを実装する具象クラスを作成しました。私のコードは以下のような操作の私の実装を示しています
var collection = mainPageViewModel?.SearchPageVM?.searchManager?.AutoSuggestResponse;
var ob = collection.First();
if (ob is IMasterAutoSuggestOutlet)
{
var ToBeTransfered = collection.OfType<MasterAutoSuggestModel>(); //Simply returns the collection with a count 0
var serializedData = JsonConvert.SerializeObject(ToBeTransfered);
ScenarioFrame.Navigate(typeof(MasterSearchResultPage), serializedData);
}
問題は、それは私にcollection
は、その中に10個のアイテムを持っているにもかかわらず、カウント0のコレクションを返しますvar ToBeTransfered = col.OfType<MasterAutoSuggestModel>();
です。
誰かが間違っていますか?次のページに送信するために、この変換されたコレクションをシリアル化してナビゲーションパラメータとして送信する必要があります。
ためautomapperのようなものを使用することができますか? –
AutoMapperのようなものがあります –
オートマナーナゲットをインストールするか、ライブラリをインポートしてマップを作成する方法はありますか?私ができる明示的なキャストはありますか?または同じの拡張メソッドを記述する? –