[英]Custom Task on WP8
我想在我的应用程序上创建一个新任务,以便以后对其进行跟踪...但是我认为我尝试的方式并不理想。 这就是我正在尝试的:
public async Task NombreEvento(string json)
{
var c = new Jumper.Core.Client.Client();
var item2 = await c.CreateDefaultItem();
Jumper.Core.Model.TrackingItem item = item2;
item.Type = Jumper.Core.Model.TrackingTypeEnum.Custom;
item.Json = json;
item.RunningSeconds = 0;
var t = new Jumper.Core.Services.ServiceFactory();
var service = await t.serviceFactory.TrackingService.AddItem(item);
}
我的问题是我不能使用功能CreateDefaultItem ... Client()上的错误是:使用通用类型Jumper.Core.Client.Client需要4个类型参数。
这是函数CreateDefaultItem:
namespace Jumper.Core.Client
{
public sealed class Client
<TBaseSaveData,
TDeviceServiceHelper,
TGeoLocationService,
TNetworkService>
where TBaseSaveData : BaseSaveDataService, new()
where TDeviceServiceHelper : IDeviceServiceHelper, new()
where TGeoLocationService : IGeoLocationService, new()
where TNetworkService : INetworkService, new()
{
private readonly int appId;
private readonly string appVersion;
private readonly ServiceFactory<TBaseSaveData,
TDeviceServiceHelper,
TGeoLocationService,
TNetworkService> serviceFactory;
#region Constructors
internal Client
(int appId, string appVersion)
{
this.appId = appId;
this.appVersion = appVersion;
this.serviceFactory = new ServiceFactory<TBaseSaveData,
TDeviceServiceHelper,
TGeoLocationService,
TNetworkService>();
}
#endregion
#region Private Methods
public async Task SendItem(TrackingTypeEnum trackingType, bool flush)
{
TrackingItem item = await CreateDefaultItem();
item.Type = trackingType;
if (trackingType != TrackingTypeEnum.Background)
{
item.RunningSeconds = 0;
}
await this.serviceFactory.TrackingService.AddItem(item, flush);
}
public async Task<TrackingItem> CreateDefaultItem()
{
Tuple<double, double> location = await this.serviceFactory.GeoLocationService
.GetUnifiedGeoLocation();
var assemblyService = this.serviceFactory.AssemblyInfoService;
var deviceService = this.serviceFactory.DeviceServiceHelper;
var seconds = (DateTime.UtcNow - this.serviceFactory.TrackingService.StartTime).TotalSeconds;
TrackingItem item = new TrackingItem()
{
//APP
AppId = this.appId,
RunningSeconds = (int)seconds,
AppVersion = this.appVersion,
Language = CultureInfo.CurrentCulture.TwoLetterISOLanguageName,
Country = CultureInfo.CurrentCulture.Name.Substring(3, 2),
//Navigation
Json = TrackingItem.NULL
};
return item;
}
}
我对函数serviceFactory有相同的问题(具有相同的错误)。
谁能帮我吗?
非常感谢!
好吧,您需要编写如下内容:
var c = new Jumper.Core.Client.Client<Type1, Type2, Type3, Type4>();
尽管我不熟悉您使用的那个库。 那是整个清单吗? 您甚至应该手动创建Client
实例吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.