Je crée un objet côté serveur qui doit contenir toutes les données nécessaires pour représenter l'objet côté client. L'une des propriétés que j'aimerais que mon objet client possède est son icône.
Actuellement, j'ai le code suivant. Il n'a pas encore été exécuté, je voulais juste discuter de certaines choses avec S.O :
public class ComponentDiagramPolygonChild
{
IconServicesSoapClient IconServicesProxy = new IconServicesSoapClient("IconServicesSoap");
public string Name { get; set; }
public byte[] Icon { get; set; }
public ComponentDiagramPolygonChild(PlanViewComponent planViewComponent)
{
Name = planViewComponent.Name;
//TODO: Can icon ever return null here?
Icon = IconServicesProxy.GetIconByID(planViewComponent.Icon).Image;
planViewComponent.
}
}
Il me semble que deux options s'offrent à moi :
- Stocke l'ID de l'icône en tant que propriété au lieu d'un byte[].
- Stocke l'icône sous la forme d'un octet[].
Si j'utilise la première suggestion, je devrai aller sur le serveur et demander les données de l'image en transmettant au serveur l'ID de l'icône. Je pense qu'il s'agit d'une approche plus simpliste : je renverrais simplement un flux de mémoire contenant l'image et je chargerais ce flux à l'emplacement souhaité. L'aspect négatif de cette approche est la multiplication des requêtes sur le serveur, ce qui semble tout à fait inutile.
Si j'utilise cette dernière suggestion, je transmettrai une quantité de données (significativement ?) plus importante à travers le réseau. Je ne sais pas si les tableaux d'octets peuvent être correctement JSONisés. Je ne sais pas comment prendre un byte[] jsonisé et le convertir en données d'image.
Quelqu'un a-t-il une expérience de cette situation ? Comment dois-je m'y prendre ? Je vous remercie.
EDIT : Après quelques lectures, il semble que la première option soit la meilleure.