【发布时间】:2017-04-08 16:05:47
【问题描述】:
我知道这已经在堆栈中的很多地方得到了回答,最好的答案是Here。我也试过了,还有很多其他的答案。我有一个库,它返回给我一个接口集合 (IMasterAutoSuggestOutlet)
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);
}
问题在于var ToBeTransfered = col.OfType<MasterAutoSuggestModel>(); 它返回给我一个计数为 0 的集合,即使 collection 中有 10 个项目。
谁能告诉我哪里出错了?请注意,我需要使用此 Converted 集合进行序列化并作为导航参数发送到下一页
【问题讨论】: