3 votes

Fluorine TransientAttribute et Linq-to-SQL

J'ai trouvé une solution de contournement, mais j'ai eu des difficultés en début de semaine à travailler avec FluorineFx où j'avais un objet généré par Linq-to-SQL que je voulais envoyer par câble à Flash. Cet objet contenait une propriété dont Flash n'avait pas besoin :

[Association(Name="User_UserEntry", Storage="_UserEntries",
             ThisKey="UserID", OtherKey="UserID")]
public EntitySet<UserEntry> UserEntries { ... }

Mais Flex n'a pas pu gérer le regonflage de ce type, le lancer :

ArgumentError : Erreur #2173 : Impossible de lire un objet dans le flux. La classe flex.messaging.io.ArrayCollection n'implémente pas flash.utils.IExternalizable mais est aliasée vers une classe externalisable.

Je n'avais pas besoin d'envoyer la propriété par l'intermédiaire d'un câble, j'ai donc essayé les étapes suivantes Marc Gravell suggéré en numéro 456624 en lui ajoutant tout d'abord des attributs à l'aide de la fonction MetadataTypeAttribute dans System.ComponentModel.DataAnnotations (trouvé à partir de JasonW Le commentaire de l'auteur de l'article sur numéro 393687 :

[MetadataType(typeof(UserMetadata)]
public partial class User { }

internal class UserMetadata
{
    [FluorineFx.Transient]
    public EntitySet<UserEntry> UserEntries { get; set; }
}

Malheureusement, il semble que FluorineFx ne prenne pas encore en charge les attributs de métadonnées (ce qui n'est pas très surprenant, ils sont assez nouveaux).

Ce que j'ai fini par faire, c'est créer un DTO dédié, avec toutes les propriétés qui intéressent Flash et aucune des propriétés qui ne l'intéressent pas. Ce n'est pas la solution la plus élégante.

D'autres personnes ont-elles rencontré ce problème et avez-vous trouvé des moyens plus élégants de le résoudre ?

1voto

Lieven Cardoen Points 5233

J'utilise l'attribut Transient et cela fonctionne bien. Je travaille avec la dernière version de FluorineFx provenant du SVN.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X