产品实体的WCF MDS 2012的成员名单 [英] MDS 2012 List members of Product Entity in WCF

查看:99
本文介绍了产品实体的WCF MDS 2012的成员名单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要列出从C#生产实体成员。



下面是代码,但我不知道怎么的成员属性例如建立上市从集合名称。的代码如下。

 使用系统; 
使用System.Collections.Generic;
使用System.Linq的;
使用System.Text;
//其他参考...
使用HelloMDS.MDService; / *使用System.Collections.ObjectModel创建的服务引用* /
; / *支持代理* /

命名空间HelloMDSG_Members
{
类节目
{
私有静态ServiceClient mdsProxy使用集合对象; / *服务代理对象* /

静态无效的主要(字串[] args)
{
//创建服务代理
Console.WriteLine(连接。 ..);

{
mdsProxy = CreateMdsProxy(HTTP://localhost/MDS/service/Service.svc);
Console.WriteLine(已连接);
}
赶上(异常前)
{
Console.WriteLine(错误连接:+ ex.Message);
}

Console.WriteLine(呼叫GetMembers);
GetMembers();

Console.WriteLine(成品);
Console.ReadKey();

}

公共静态无效GetMembers()
{


//声明一个新的MDS ServiceClient
ServiceClient客户端=新ServiceClient();
// EntityMembersGetRequest要求=新EntityMembersGetRequest();

//建立产品实体
//在产品型号的实体成员的请求,从MDS样品包装上的MS Connect网站
EntityMembersGetRequest请求版本4 =新EntityMembersGetRequest();
request.MembersGetCriteria =新EntityMembersGetCriteria();
request.MembersGetCriteria.ModelId =新标识(){名称=1型};
request.MembersGetCriteria.VersionId =新标识(){名称=VERSION_1};
request.MembersGetCriteria.EntityId =新标识(){名称=产品};

request.MembersGetCriteria.MemberReturnOption = MemberReturnOption.DataAndCounts; //没有这个要求没有返回承包商,客人!

Console.WriteLine(开始获取数据);

//提交请求到MDS Web服务客户端
EntityMembersGetResponse响应= client.EntityMembersGet(请求);

Console.WriteLine(计数:{0},response.EntityMembersInformation.MemberCount);

//确认成员返回
如果(response.EntityMembersInformation.MemberCount大于0)
{
System.Collections.ObjectModel.Collection<&成员GT;成员= response.EntityMembers.Members;

//这里帮助请
//写成员列出与name属性
Console.WriteLine()成员 - name属性);

}

HandleErrors(response.OperationResult);
}

//创建服务客户端代理
私有静态ServiceClient CreateMdsProxy(字符串mdsURL)
{
//创建一个使用URL的端点地址
System.ServiceModel.EndpointAddress endptAddress =新System.ServiceModel.EndpointAddress(mdsURL);

//创建和配置WS HTTP绑定
System.ServiceModel.WSHttpBinding wsBinding =新System.ServiceModel.WSHttpBinding();

//创建并返回客户端代理
返回新ServiceClient(wsBinding,endptAddress);
}

//手柄的操作结果
私有静态无效HandleErrors(OperationResult结果)
{
串的errorMessage =的String.Empty;
如果(result.Errors.Count()!= 0)
{
的for(int i = 0; I< = result.Errors.Count() - 1;我++)
{
的errorMessage + =OperationResult:错误:+ result.Errors [I]。代码+:
+ result.Errors [I]。说明+:+结果。错误[I] .Context.Type.ToString();
}
Console.WriteLine(错误:+的errorMessage);
}
}
}
}


解决方案

您寻找:

 的foreach(VAR的成员成员)
{
Console.WriteLine(member.MemberId.Id);
的foreach(在member.Attributes var属性)
{
Console.WriteLine(属性:{0},\tValue:{1},attribute.Identifier.Name,属性。值);
}
}


I need to list member from Production entity in C#.

Below is the code, but I don't know how to build the listing of members attribute e.g. Name from the collection. The code is below.

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

解决方案

Are you looking for:

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

这篇关于产品实体的WCF MDS 2012的成员名单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆