20 messaggi dal 19 ottobre 2005
Ciao, sti smanettando un po con la reflection... Voglio recuperare da una mia classe derivata da Windows.Form le mie proprietà, se uso il metodo type.GetProperties() mi ritorna tutte le proprietà tranne le mie, come mai? inoltre come faccio ad assegnare valori alla proprietà?
20 messaggi dal 19 ottobre 2005
p.s.: se uso type.GetProperty("NomeProprietà"); funziona.... :) cmq come faccio a valorizzarla????
grazie
Usa il metodo SetValue del PropertyInfo che ti restituisce. Gli passi l'oggetto sulla quale impostare la proprietà e il valore.

Ciao

Il mio blog
Homepage
20 messaggi dal 19 ottobre 2005
si ho provato: guarda questo è il codice:

Assembly dll = Assembly.LoadFrom(@"C:\Documents and Settings\All Users\Documenti\WS 2005\Reflect\bin\Debug\Reflect.dll");
Form form_dll = new Form();
form_dll = (Form)dll.CreateInstance("Reflect.Form1", true);
Type type;
type = form_dll.GetType();
FieldInfo fi = type.GetField("S");
fi.SetValue(form_dll, "ovolollo"); <------Eccezzione
form_dll.MdiParent = this;
form_dll.Show();


l'eccezzione generata è:
Use the New keyword to create the instance.
Uso il framework 2.0, in pratica ho creato una dll con dentro una form e la proprietà "S", anche dopo la creazione della nuova istanza dell'assembly nn funge... mah
Sicuro che Reflect.Form1 abbia un costruttore di default senza parametri?

Ciao

Il mio blog
Homepage
20 messaggi dal 19 ottobre 2005
sisi guarda questa è la classe Form1:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Reflect
{
public partial class Form1 : Form
{
private string s = "popopoppoo";
private string k;

public string S
{
get
{
return s;
}
set
{
s = value;
}

}

public Form1 ()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
MessageBox.Show(s);
MessageBox.Show(k);
}
}
}
S è una proprietà, non un field. Perché usi GetField?

Ciao

Il mio blog
Homepage
20 messaggi dal 19 ottobre 2005
Perchè sono un'emerito cretino... grazie ancora
CIAO

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.