Personnalisation du code généré
Cette rubrique indique comment personnaliser le code généré sur un client Services RIA WCF. Dans certains cas pour les Services RIA , vous voulez ajouter du code supplémentaire au code généré pour votre projet client. Cependant, vous ne pouvez pas directement personnaliser le code généré, car vos modifications seront remplacées lors de la prochaine compilation du code de couche intermédiaire. Les fournissent des méthodes partielles dans le code généré que vous pouvez implémenter dans un fichier de code distinct afin de personnaliser le code de la couche client. Ces méthodes partielles sont des « points de raccordement » que vous pouvez utiliser pour attacher votre code au code généré. Les méthodes sont appelées uniquement si vous avez créé une méthode partielle correspondante.
Pour plus d'informations sur la personnalisation du code généré, afin de calculer de nouvelles valeurs en fonction des propriétés de la classe d'entité, consultez Procédure : Ajouter des propriétés calculées sur le client.
Méthodes partielles
L'infrastructure des Services RIA WCF génère des méthodes partielles pour les classes du contexte du domaine et les classes d'entité.
Pour les classes du contexte du domaine, la méthode partielle suivante est fournie.
Membre | Utilisation |
---|---|
|
Exécuté lorsque l'objet DomainContext est instancié. |
Pour les classes d'entité, les méthodes partielles suivantes sont fournies.
Membre | Utilisateur |
---|---|
|
Exécuté lorsque l'objet entité est instancié. |
|
Exécuté quand l'entité est chargée et désérialisée pour la première fois, ou quand l'entité est désérialisée à partir du serveur, mais qu'elle existe déjà sur le client. |
|
Appelé après la validation, mais avant que la valeur soit définie. |
|
Appelé juste après la définition de la valeur et avant que la méthode RaiseDataMemberChanged soit appelée. |
|
Appelé à l'appel de la méthode personnalisée, mais avant que celle-ci ne soit invoquée. |
|
Appelé après que la méthode personnalisée soit appelée et invoquée. |
Implémentation des méthodes partielles
Pour utiliser ces méthodes, vous ajoutez une classe partielle ayant le même nom et espace de noms que la classe générée que vous voulez personnaliser. Étant donné que le code client généré automatiquement a le même espace de noms que le code du projet serveur, l'espace de noms de votre classe partielle est généralement au format projectname.Web
. Puis, vous implémentez la méthode qui est exécutée au moment où votre code personnalisé doit être exécuté. Par exemple, pour charger un contexte de domaine à sa création, vous ajoutez le code suivant.
Imports System.ServiceModel.DomainServices.Client
Namespace Web
Partial Public Class EmployeeDomainContext
Inherits DomainContext
Private Sub OnCreated()
Me.Load(Me.GetEmployeesQuery())
End Sub
End Class
End Namespace
using System.ServiceModel.DomainServices.Client;
namespace RIAServiceExample.Web
{
public partial class EmployeeDomainContext : DomainContext
{
partial void OnCreated()
{
this.Load(this.GetEmployeesQuery());
}
}
}
Vous pouvez définir des propriétés sur la classe d'entité générée dans une méthode partielle. Par exemple, si la table Employee dans votre base de données inclut un champ nommé CreatedBy
, vous pouvez définir la valeur de la propriété en implémentant une méthode partielle pour OnCreated()
. Pour suivre qui a créé une nouvelle instance d'une entité, vous ajoutez le code suivant.
Imports System.ServiceModel.DomainServices.Client
Namespace Web
Partial Public Class Employee
Inherits Entity
Private Sub OnCreated()
Me.CreatedBy = WebContext.Current.User.Name
End Sub
End Class
End Namespace
using System.ServiceModel.DomainServices.Client;
namespace RIAServiceExample.Web
{
public partial class Employee : Entity
{
partial void OnCreated()
{
this.CreatedBy = WebContext.Current.User.Name;
}
}
}