Che cos'è il riflesso in C#? Dove usiamo questo concetto nelle nostre applicazioni?Che cos'è il riflesso in C#? Dove usiamo questo concetto nella nostra applicazione?
risposta
Riflessione fornisce oggetti (di tipo Type) che incapsulano assiemi, moduli e tipi. È possibile utilizzare la riflessione per creare dinamicamente un'istanza di un tipo, associare il tipo a un oggetto esistente o ottenere il tipo da un oggetto esistente e richiamarne i metodi o accedere ai relativi campi e proprietà. Se si utilizza attributi nel codice, la riflessione consente di accedervi ...
Per riferimento, MSDN article on reflection e The Code Project ha reflection abbastanza ben spiegato ..
Per esempio, uno sguardo ai C# Reflection Examples.
dove usiamo questo? Posso darmi l'applicazione di quello ?? – HITESH
@Hitesh Puoi usarlo con gli assembly ... L'articolo ha alcuni buoni esempi ... –
Penso che sia una buona idea mettere * CORTESIA * –
Dal documentation:
Riflessione fornisce oggetti (di tipo tipo) che incapsulano assiemi moduli e tipi. È possibile utilizzare riflessione per creare dinamicamente una un'istanza di un tipo, associare il tipo di un oggetto esistente, o di ottenere il tipo da un oggetto esistente e richiamare i suoi metodi o accedere i suoi campi e proprietà. Se si utilizzano gli attributi nel codice, Reflection consente di accedervi. Per ulteriori informazioni su , vedere Attributi.
Wikipedia dice questo:
In informatica, la riflessione è il processo mediante il quale un programma per computer può osservare e modificare il proprio struttura e il comportamento. Il paradigma di programmazione guidato dalla riflessione si chiama programmazione riflettente . È un tipo particolare di metaprogrammazione.
Per esempio, se si desidera visualizzare di programmazione tutti i metodi di una classe, si potrebbe fare in questo modo:
using System;
using System.Reflection;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var t = typeof(MyClass);
foreach (var m in t.GetMethods())
{
Console.WriteLine(m.Name);
}
Console.ReadLine();
}
}
public class MyClass
{
public int Add(int x, int y)
{
return x + y;
}
public int Subtract(int x, int y)
{
return x - y;
}
}
}
dove usiamo questo ? puoi darmi l'applicazione ?? – HITESH
@HITESH Ho aggiunto un esempio. –
Hai risposte di cui sopra di ciò riflessione è, alcuni casi in cui ho' ve usato in passato:
- un metodo generico che prende in un elenco di proprietà e copie tali proprietà in un oggetto all'altro
- un metodo che utilizza la descrizione attributo per ottenere il testo per enum, simile a this
anche vedere this article esempi di riflessione, ulteriori link in fondo alla pagina.
grazie per avermi fornito tale collegamento, ma una domanda è che quando aggiungiamo come spazio dei nomi nella semplice pagina .cs o in qualche altra pagina? Per favore, dimmelo? – HITESH
Scusa, non sono sicuro di cosa intendi. Lo spazio dei nomi per la riflessione è System.Reflection. È ciò che intendi? – Fermin
Un uso della riflessione che si trova nei framework: per eseguire una funzione particolare (in tale framework) viene utilizzata una classe. Ma la classe esatta non è nota al momento della compilazione, ma è configurata in qualche file di testo, come il nome della classe (di solito includendo il suo assembly).Usando il reflection puoi prendere questa stringa e creare un'istanza di quella particolare classe.
- 1. Impossibile unire Unity 5 nella nostra applicazione iOS
- 2. Dove posizionare la struttura dell'entità nella nostra soluzione?
- 3. Dove/quando usiamo JSON?
- 4. Impossibile far funzionare Log4Net nella nostra applicazione WCF
- 5. Findbugs non escludendo metodi nella nostra applicazione java
- 6. Dove e perché usiamo __toString() in PHP?
- 7. Dove usiamo le istruzioni Debug/Trace
- 8. Concetto di filettatura in C#
- 9. Il tipo dinamico C# fa sì che Console.WriteLine venga risolto con il riflesso in IL
- 10. perché usiamo il tipo @Master?
- 11. Elenco di tutte le attività nella nostra applicazione in esecuzione sul dispositivo
- 12. Fusioni a un riflesso tipo in C#
- 13. RavenDB è adatto a questo concetto?
- 14. Che cosa significa il concetto di trasferimento?
- 15. qual è lo scopo dell'utilizzo dei comandi USSD nella nostra applicazione J2ME? È possibile?
- 16. Come utilizzare la schermata di blocco della password predefinita nella nostra applicazione Android?
- 17. Come incorporare la finestra da un'altra applicazione nella nostra finestra WPF come controllo utente?
- 18. Che cosa significa questo attributo [Opzione (...)] C#?
- 19. Dove usare "questo" in java?
- 20. Dove trovare il mio ID applicazione Yahoo?
- 21. applicazione web - dove posizionare il file hibernate.cfg.xml?
- 22. Riflesso Objective-C per un'implementazione generica NSCoding
- 23. Come possiamo ottenere che la nostra applicazione possa anche spostarsi su SDCard?
- 24. Qual è la sintassi: utilizzando "questo" nella proprietà in C#?
- 25. Perché il mio riflesso carica strane lezioni?
- 26. Che cosa significa "[questo]" significa in C++
- 27. Dove e in che modo il software incontra l'hardware?
- 28. Come rimuovere il "riflesso bianco" sull'icona dell'applicazione?
- 29. Converti il puntatore "questo" nella stringa
- 30. concetto descrittore in NIC
Il primo hit non è poi così male: http://www.google.com/search?q=what+is+reflection+in+c%23+%3F+where+we+use+this+concept + in + nostra + applicazione% 3F –
Sto sognando o il titolo della domanda è più lungo della domanda stessa? – ereOn
@ 0xA3: Sono abbastanza sicuro che la nostra risposta istintiva a qualcuno che fa una domanda introduttiva su StackOverflow non dovrebbe essere "go go it yourself" o "RTFM". –