1 //------------------------------------------------------------------------------
2 // <copyright file="XmlMembersMapping.cs" company="Microsoft">
3 // Copyright (c) Microsoft Corporation. All rights reserved.
5 // <owner current="true" primary="true">Microsoft</owner>
6 //------------------------------------------------------------------------------
8 namespace System.Xml.Serialization {
9 using System.Reflection;
13 /// <include file='doc\XmlMembersMapping.uex' path='docs/doc[@for="XmlMembersMapping"]/*' />
16 /// <para>[To be supplied.]</para>
18 public class XmlMembersMapping : XmlMapping {
19 XmlMemberMapping[] mappings;
21 internal XmlMembersMapping(TypeScope scope, ElementAccessor accessor, XmlMappingAccess access) : base(scope, accessor, access) {
22 MembersMapping mapping = (MembersMapping)accessor.Mapping;
23 StringBuilder key = new StringBuilder();
25 mappings = new XmlMemberMapping[mapping.Members.Length];
26 for (int i = 0; i < mappings.Length; i++) {
27 if (mapping.Members[i].TypeDesc.Type != null) {
28 key.Append(GenerateKey(mapping.Members[i].TypeDesc.Type, null, null));
31 mappings[i] = new XmlMemberMapping(mapping.Members[i]);
33 SetKeyInternal(key.ToString());
36 /// <include file='doc\XmlMembersMapping.uex' path='docs/doc[@for="XmlMembersMapping.TypeName"]/*' />
38 /// <para>[To be supplied.]</para>
40 public string TypeName {
41 get { return Accessor.Mapping.TypeName; }
44 /// <include file='doc\XmlMembersMapping.uex' path='docs/doc[@for="XmlMembersMapping.TypeNamespace"]/*' />
46 /// <para>[To be supplied.]</para>
48 public string TypeNamespace {
49 get { return Accessor.Mapping.Namespace; }
52 /// <include file='doc\XmlMembersMapping.uex' path='docs/doc[@for="XmlMembersMapping.this"]/*' />
54 /// <para>[To be supplied.]</para>
56 public XmlMemberMapping this[int index] {
57 get { return mappings[index]; }
60 /// <include file='doc\XmlMembersMapping.uex' path='docs/doc[@for="XmlMembersMapping.Count"]/*' />
62 /// <para>[To be supplied.]</para>
65 get { return mappings.Length; }