产品实体的WCF MDS 2012的成员名单 [英] MDS 2012 List members of Product Entity in WCF
本文介绍了产品实体的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屋!
查看全文