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