J'utilise Castle.DynamicProxy2 et j'instancié avec ma procuration en tant que tel:Castle.DynamicProxy2 et Ajout d'une propriété lors de l'exécution
private static T GenerateProxy()
{
ArrayList addtlInterfaces = new ArrayList();
addtlInterfaces.Add(typeof (INotifyPropertyChanged));
addtlInterfaces.Add(typeof (EntityStatus));
object entityProxy = ProxyGenerator.CreateClassProxy(typeof(T),
addtlInterfaces.ToArray(typeof(Type)) as Type[],
ProxyGenerationOptions.Default,
new IInterceptor[] { new LazyInterceptor() });
return (T)entityProxy;
}
Mon interface IEntityStatus ressemble par exemple:
public interface IEntityStatus
{
bool IsDirty
{ get; set;}
}
J'ai besoin d'être capable d'utiliser cette propriété pendant l'exécution de sorte que lorsque mon DTO a un événement de modification de propriété, l'événement pourrait rendre le DTO sale. Cependant parce que c'est une interface et n'a pas de mise en œuvre explicite, je ne sais pas comment faire cela. Créer un délégué pour la méthode get et set est une option que j'aimerais éviter. Alors, y a-t-il un autre moyen de réaliser ce que je cherche à réaliser? Je réalise que je pourrais mettre en place une collection de tous mes DTO actifs et quand la propriété a changé les feux d'événement sur l'un des DTO je pourrais mettre à jour cette collection pour montrer que cette DTO particulière est sale, mais je voudrais vraiment pour cela l'information pour faire partie de l'OTV par procuration pour une facilité syntaxique pure.
Réjouissez-vous des réponses!