繁体   English   中英

WP8上的自定义任务

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM