Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    10

    webmethod con tipo di output generico

    Buonasera,
    avrei necessit� di scrivere un webmethod in c# che possa restituire pi� tipi di dato.

    Restituendo un tipo object, tutto ok.

    Mi chiedevo se esisteva un modo per restituire un tipo "Generic"

    Ho provato ad intraprendere questa strada, ma ottengo degli errori di cast non valido. Qualcuno ha affrontato e risolto questo problema?

    codice:
    public
    static T Test<T>() {
    
    
                
     
    if (1 == 2)
    
                {
    
                    
    return 0;
    
                }
    
                
    else
    
                    
    return"a";
    
    
            }
    
    ma ottengo "cannot implicity convert type int (oppure string) to T"

    � possibile fare quello che chiedo, oppure non c'� modo di farlo funzionare con i generic?

    Grazie anticipatamente

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    un metodo che restituisca una volta integer, un'altra un double, un'altra un datetime o una stringa?
    se così io userei un object, come hai già fatto.
    Pietro

  3. #3
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,521
    Quote Originariamente inviata da MarcoAdi Visualizza il messaggio
    Buonasera,
    avrei necessit� di scrivere un webmethod in c# che possa restituire pi� tipi di dato.

    Restituendo un tipo object, tutto ok.

    Mi chiedevo se esisteva un modo per restituire un tipo "Generic"

    Ho provato ad intraprendere questa strada, ma ottengo degli errori di cast non valido. Qualcuno ha affrontato e risolto questo problema?

    codice:
    public
    static T Test<T>() {
    
    
                
     
    if (1 == 2)
    
                {
    
                    
    return 0;
    
                }
    
                
    else
    
                    
    return"a";
    
    
            }
    
    ma ottengo "cannot implicity convert type int (oppure string) to T"

    � possibile fare quello che chiedo, oppure non c'� modo di farlo funzionare con i generic?

    Grazie anticipatamente
    Buonasera,
    Non vedo l'utilit� della cosa, ma se proprio vuole può sempre fare cos�:
    codice:
    (T)(object)0;
    (T)(object)"a";

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    10
    Per prima cosa grazie della risposta

    codice:
     (T)(object)0;
     (T)(object)"a";
    Con questo metodo, non da pi� errore di compilazione, tuttavia quando tento di compilare l'svc restiruisce il seguente:
    Il tipo 'T' non pu� essere esportato come tipo di schema perch� � un tipo generico aperto. � possibile esportare un tipo generico solo se i tipi di tutti i parametri generici che contiene sono effettivi.


    Quote Originariamente inviata da U235 Visualizza il messaggio
    Non vedo l'utilit� della cosa
    Nemmeno io... UCAS (Ufficio complicazioni affari semplici )

  5. #5
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,521
    Per serializzare un tipo occorre che il tipo sia noto, quindi T dovrebbe essere un tipo (almeno di base).
    Forse (non so) potresti provare ad assegnarlo ad un tipo tramite where.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.