Ho un'applicazione Windows Store che utilizza un'attività in background. L'attività in background è memorizzata in un progetto componente Windows Runtime. (Questa struttura sembra essere l'unico modo per far funzionare le attività in background.)Come posso superare la limitazione Componente di Windows ai tipi di runtime di Windows?
Nel progetto di attività in background, ho alcuni metodi pubblici esternamente visibili che hanno tipi di ritorno/parametro che sono le mie classi piuttosto che le classi di Windows Runtime.
Ad esempio:
public MyClass DoSomething()
{
return null;
}
Quando costruisco, ricevo errori come quanto segue in relazione a questi metodi:
Metodo 'X' restituisce 'Y', che non è un tipo di Windows Runtime valido. I metodi esposti a Windows Runtime devono restituire solo i tipi di Windows Runtime.
e
Metodo 'T' ha parametro 'U' di tipo 'W'. 'W' non è un tipo di parametro di Windows Runtime valido.
Posso capire che cosa dicono gli errori, ma non ho pensato ad un buon modo per strutturare il mio codice in modo da soddisfare questi requisiti.
Qui ci sono alcune cose che ho già considerati:
- Cambiare il progetto compito di sfondo ad un progetto Libreria di Windows Store. Ciò ha consentito l'utilizzo dei tipi di runtime non Windows nelle firme del metodo, ma l'attività in background non è più stata avviata.
- Utilizzo di una libreria di classi portatile. Questo non ha funzionato perché non ha avuto accesso a Windows Runtime.
- Per i tipi di valore, posso suddividerli in
Tuple
s o più parametri, ma questo sembra disordinato, meno strutturato e meno gestibile. Sono fermamente contrario a questo tipo di programmazione. - Per le classi, sembra che potrei dover duplicare la loro logica su entrambe le applicazioni. Questo è un enorme problema di manutenibilità.
Si sta rendendo inutilmente difficile rispondere non mostrandoci come sono questi metodi. I tipi personalizzati richiedono la creazione di un proxy, controlla [questa risposta] (http://stackoverflow.com/a/14802799/17034). –
@ HansPassant: Grazie! Ho modificato la domanda per renderla un po 'più chiara. – Sam
Non riesco ancora a vedere come sono questi metodi. –