Ajout dynamique de propriétés à une classe
Dans ma classe, j'ai variables privées et les propriétés de ce type.
private string _itemCOde=string.Empty;
private string _itemName=string.Empty;
public string ItemCode
{
get { return _itemCode; }
set { _itemCode = value == null ? value : value.Trim();}
}
public string ItemName
{
get { return _itemName; }
set { _itemName = value == null ? value : value.Trim();}
}
Selon cette propriétés-je créer des objets Item après avoir sélectionné les données de la table sql.
Maintenant, si la table de base de données modifiées et ajouter une nouvelle colonne intitulée coût, puis-je ajouter une autre propriété à la classe. Sans l'ajout de nouvelles propriétés de la classe est-il un moyen de faire déclarer les propriétés selon les champs de la table de façon dynamique.
source d'informationauteur Snj
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser un
ExpandoObject
:Peut-être ce que vous avez besoin est un Dictionnaire.
Si vous avez besoin de garder les attributs de classe en synchronisation avec le schéma de la table SQL... Ce que vous avez besoin est LINQ to SQL
Prendre un coup d'oeil à DynamicObject. Vous pouvez l'envelopper d'un Système.Les données.DataRow dans un afin d'obtenir la fonctionnalité que je pense que vous êtes après.
http://msdn.microsoft.com/en-us/library/system.dynamic.dynamicobject.aspx
Si de nouvelles colonnes sont ajoutées aux bases de données, vous devez modifier votre code pour spécifier comment les nouvelles colonnes doivent être utilisés.
Si vous avez juste besoin d'afficher le contenu de la table en dépit du champ dans la table, alors vous pouvez utiliser
DataTable
classe.Vous pouvez dynamiquement associer les noms et les valeurs des uns avec les autres à l'aide d'un
Dictionnaire<TKey,TValue>
. Vous pouvez combiner cela avec votre propre wrapper de l'utilisation de l'indexeur:Encore, si les modifications de base de données, alors vous devriez vraiment probablement changer votre objet, car il changé.
Voici un lien pour vous d'ajouter dynamiquement des biens, espacial ligne de données à partir de la base de données
http://www.eggheadcafe.com/community/aspnet/2/10070284/how-to-dynamically-add-propery-in-a-class-in-c.aspx