Partager via


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

OnCreated()

Exécuté lorsque l'objet DomainContext est instancié.

Pour les classes d'entité, les méthodes partielles suivantes sont fournies.

Membre Utilisateur

OnCreated()

Exécuté lorsque l'objet entité est instancié.

OnLoaded(boolean)

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.

On[PropertyName]Changing

Appelé après la validation, mais avant que la valeur soit définie.

On[PropertyName]Changed

Appelé juste après la définition de la valeur et avant que la méthode RaiseDataMemberChanged soit appelée.

On[CustomMethodName]Invoking

Appelé à l'appel de la méthode personnalisée, mais avant que celle-ci ne soit invoquée.

On[CustomMethodName]Invoked

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;
    }
  }
}

Voir aussi

Tâches

Procédure : Ajouter des propriétés calculées sur le client