2 votes

MDS 2012 Liste des membres de l'entité Produit dans WCF

Je dois répertorier les membres de l'entité Production en C#.

Voici le code, mais je ne sais pas comment construire la liste des attributs des membres par exemple. Nom de la collection. Le code est ci-dessous.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
// références supplémentaires... 
using HelloMDS.MDService; /* pour la référence de service créée */
using System.Collections.ObjectModel; /* prend en charge les objets de collection utilisés dans le proxy */

namespace HelloMDSG_Members
{
    class Program
    {
        private static ServiceClient mdsProxy; /* objet proxy de service */

        static void Main(string[] args)
        {
            // Créer le proxy de service 
            Console.WriteLine("Connexion...");
            try
            {
                mdsProxy = CreateMdsProxy("http://localhost/MDS/service/Service.svc");
                Console.WriteLine("Connecté.");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Erreur de connexion : " + ex.Message);
            }

            Console.WriteLine("Appeler GetMembers");
            GetMembers();

            Console.WriteLine("Terminé");
            Console.ReadKey();

        }

        public static void GetMembers()
        {

            //déclarer un nouveau ServiceClient MDS
            ServiceClient client = new ServiceClient();
            //EntityMembersGetRequest request = new EntityMembersGetRequest();

            //Construisez une requête pour les membres de l'entité Produit dans le Modèle de Produit, Version 4 du package MDS Sample sur le site MS Connect
            EntityMembersGetRequest request = new EntityMembersGetRequest();
            request.MembersGetCriteria = new EntityMembersGetCriteria();
            request.MembersGetCriteria.ModelId = new Identifier() { Name = "Modèle 1" };
            request.MembersGetCriteria.VersionId = new Identifier() { Name = "VERSION_1" };
            request.MembersGetCriteria.EntityId = new Identifier() { Name = "Produit" };

            request.MembersGetCriteria.MemberReturnOption = MemberReturnOption.DataAndCounts; // sans cela, la requête ne retourne pas de membres !

            Console.WriteLine("Début de la récupération des données");

            // soumettre la demande au service Web MDS Client
            EntityMembersGetResponse response = client.EntityMembersGet(request);

            Console.WriteLine("Nombre : {0}", response.EntityMembersInformation.MemberCount);

            //confirmer que des membres ont été retournés
            if (response.EntityMembersInformation.MemberCount > 0)
            {
                System.Collections.ObjectModel.Collection members = response.EntityMembers.Members;

                // AIDEZ ICI S'IL VOUS PLAIT
                // écrire la liste des membres avec l'attribut 'nom'
                Console.WriteLine() member  - attribut de nom );               

            }

            HandleErrors(response.OperationResult);
        }

        // crée le proxy de client de service 
        private static ServiceClient CreateMdsProxy(string mdsURL)
        {
            // créer une adresse de point de terminaison en utilisant l'URL 
            System.ServiceModel.EndpointAddress endptAddress = new System.ServiceModel.EndpointAddress(mdsURL);

            // créer et configurer le lien WS Http 
            System.ServiceModel.WSHttpBinding wsBinding = new System.ServiceModel.WSHttpBinding();

            // créer et retourner le proxy client 
            return new ServiceClient(wsBinding, endptAddress);
        }

        // Gère les résultats des opérations 
        private static void HandleErrors(OperationResult result)
        {
            string errorMessage = string.Empty;
            if (result.Errors.Count() != 0)
            {
                for (int i = 0; i <= result.Errors.Count() - 1; i++)
                {
                    errorMessage += " OperationResult:Error: " + result.Errors[i].Code + ":"
                         + result.Errors[i].Description + ":" + result.Errors[i].Context.Type.ToString();
                }
                Console.WriteLine("Erreur : " + errorMessage);
            }
        }
    }
}

0voto

publicgk Points 1931

Êtes-vous à la recherche de :

foreach(var member in members)
{
    Console.WriteLine(member.MemberId.Id);
    foreach(var attribute in member.Attributes)
    {
        Console.WriteLine("Attribut: {0},\tValeur: {1}", attribute.Identifier.Name, attribute.Value);
    }
}

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