2014-11-12 4 views
0

Я хотел создать новую задачу в своем приложении, чтобы позже сделать отслеживание для нее ... Но я думаю, что способ, который я пытаюсь, не очень хорош. Это то, что я пытаюсь:Пользовательская задача на 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 ... Ошибка на клиенте() является: Использование общего типа 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 (с той же ошибкой).

Может ли кто-нибудь мне помочь?

Большое спасибо!

ответ

0

Ну, вам нужно написать что-то вроде:

var c = new Jumper.Core.Client.Client<Type1, Type2, Type3, Type4>(); 

Хотя я не знаком с этой библиотекой, которую вы используете. Разве это весь список прямо там? Вы даже должны создавать экземпляры Client вручную?

+0

Да, но я должен использовать это? Я не знаю, как получить к ним доступ сюда ... – Javi

+0

Я тоже. Что это за фреймворк 'Jumper', это не стандарт. Вы посмотрели образец документации? –

+0

Jumper is and SDK, который я создал для отслеживания событий в приложениях. Я не знаю, что я должен показать вам, чтобы вы были такими легкими. – Javi