MDS 2012 WCF产品实体成员列表

本文关键字:实体 成员 列表 2012 WCF MDS | 更新日期: 2023-09-27 18:04:57

我需要在c#中列出Production实体中的成员。

下面是代码,但我不知道如何从集合中构建成员属性列表,例如Name。代码如下。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
// additional references... 
using HelloMDS.MDService; /* for the created service reference */
using System.Collections.ObjectModel; /* supports collection objects used in the proxy */
namespace HelloMDSG_Members
{
    class Program
    {
        private static ServiceClient mdsProxy; /* service proxy object */
        static void Main(string[] args)
        {
            // Create the service proxy 
            Console.WriteLine("Connecting...");
            try
            {
                mdsProxy = CreateMdsProxy("http://localhost/MDS/service/Service.svc");
                Console.WriteLine("Connected.");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error connecting: " + ex.Message);
            }
            Console.WriteLine("Call GetMembers");
            GetMembers();
            Console.WriteLine("Finished");
            Console.ReadKey();
        }
        public static void GetMembers()
        {

            //declare a new MDS ServiceClient
            ServiceClient client = new ServiceClient();
            //EntityMembersGetRequest request = new EntityMembersGetRequest();
            //Build a request for Entity Members of the Product Entity 
            //in the Product Model, Version 4 from the MDS Sample package on the MS Connect site
            EntityMembersGetRequest request = new EntityMembersGetRequest();
            request.MembersGetCriteria = new EntityMembersGetCriteria();
            request.MembersGetCriteria.ModelId = new Identifier() { Name = "Model 1" };
            request.MembersGetCriteria.VersionId = new Identifier() { Name = "VERSION_1" };
            request.MembersGetCriteria.EntityId = new Identifier() { Name = "Product" };
            request.MembersGetCriteria.MemberReturnOption = MemberReturnOption.DataAndCounts; //without this the request doesn't return memebers !
            Console.WriteLine("Start getting data");
            //submit the request to the MDS Web service  Client
            EntityMembersGetResponse response = client.EntityMembersGet(request);
            Console.WriteLine("Count:{0}", response.EntityMembersInformation.MemberCount);
            //confirm that members were returned
            if (response.EntityMembersInformation.MemberCount > 0)
            {
                System.Collections.ObjectModel.Collection<Member> members = response.EntityMembers.Members;
                // HELP HERE PLEASE
                // write members list with the name attribute
                Console.WriteLine() member  - name attribute );               
            }
            HandleErrors(response.OperationResult);
        }
        // creates the service client proxy 
        private static ServiceClient CreateMdsProxy(string mdsURL)
        {
            // create an endpoint address using the URL 
            System.ServiceModel.EndpointAddress endptAddress = new System.ServiceModel.EndpointAddress(mdsURL);
            // create and configure the WS Http binding 
            System.ServiceModel.WSHttpBinding wsBinding = new System.ServiceModel.WSHttpBinding();
            // create and return the client proxy 
            return new ServiceClient(wsBinding, endptAddress);
        }
        // Handles the operations results 
        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("Error: " + errorMessage);
            }
        }
    }
}

MDS 2012 WCF产品实体成员列表

您在找:

foreach(var member in members)
{
    Console.WriteLine(member.MemberId.Id);
    foreach(var attribute in member.Attributes)
    {
        Console.WriteLine("Attribute: {0},'tValue: {1}", attribute.Identifier.Name, attribute.Value);
    }
}
相关文章: