本文整理汇总了C#中System.Xml.Serialization.TypeData类的典型用法代码示例。如果您正苦于以下问题:C# TypeData类的具体用法?C# TypeData怎么用?C# TypeData使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
TypeData类属于System.Xml.Serialization命名空间,在下文中一共展示了TypeData类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: XmlTypeMapping
internal XmlTypeMapping(string elementName, string ns, TypeData typeData, string xmlType, string xmlTypeNamespace)
: base (elementName, ns)
{
this.type = typeData;
this.xmlType = xmlType;
this.xmlTypeNamespace = xmlTypeNamespace;
}
示例2: XmlTypeMapElementInfo
public XmlTypeMapElementInfo (XmlTypeMapMember member, TypeData type)
{
_member = member;
_type = type;
if (type.IsValueType && type.IsNullable)
_isNullable = true;
}
示例3: ConstructorArgChecking
public void ConstructorArgChecking()
{
var typeData = new TypeData(context, new TypeDataCache(context), GetType(), FudgeFieldNameConvention.Identity);
Assert.Throws<ArgumentNullException>(() => new DotNetSerializableSurrogate(null, typeData));
Assert.Throws<ArgumentNullException>(() => new DotNetSerializableSurrogate(context, null));
Assert.Throws<ArgumentOutOfRangeException>(() => new DotNetSerializableSurrogate(context, typeData));
}
示例4: TypeData
internal TypeData (string typeName, string fullTypeName, string xmlType, SchemaTypes schemaType, TypeData listItemTypeData)
{
this.elementName = xmlType;
this.typeName = typeName;
this.fullTypeName = fullTypeName.Replace ('+', '.');
this.listItemTypeData = listItemTypeData;
this.sType = schemaType;
}
示例5: ConstructorArgChecking
public void ConstructorArgChecking()
{
var typeData = new TypeData(context, new TypeDataCache(context), GetType(), FudgeFieldNameConvention.Identity);
var surrogate = new SurrogateClass();
var selector = new SurrogateSelector();
Assert.Throws<ArgumentNullException>(() => new DotNetSerializationSurrogateSurrogate(null, typeData, surrogate, selector));
Assert.Throws<ArgumentNullException>(() => new DotNetSerializationSurrogateSurrogate(context, null, surrogate, selector));
Assert.Throws<ArgumentNullException>(() => new DotNetSerializationSurrogateSurrogate(context, typeData, null, selector));
}
示例6: TypeData
public TypeData (Type type, string elementName, bool isPrimitive, TypeData mappedType, XmlSchemaPatternFacet facet)
{
#if NET_2_0
if (type.IsGenericTypeDefinition)
throw new InvalidOperationException ("Generic type definition cannot be used in serialization. Only specific generic types can be used.");
#endif
this.mappedType = mappedType;
this.facet = facet;
this.type = type;
this.typeName = type.Name;
this.fullTypeName = type.FullName.Replace ('+', '.');
if (isPrimitive)
sType = SchemaTypes.Primitive;
else
{
if (type.IsEnum)
sType = SchemaTypes.Enum;
else if (typeof(IXmlSerializable).IsAssignableFrom (type))
sType = SchemaTypes.XmlSerializable;
#if !MOONLIGHT
else if (typeof (System.Xml.XmlNode).IsAssignableFrom (type))
sType = SchemaTypes.XmlNode;
#endif
else if (type.IsArray || typeof(IEnumerable).IsAssignableFrom (type))
sType = SchemaTypes.Array;
else
sType = SchemaTypes.Class;
}
if (IsListType)
this.elementName = TypeTranslator.GetArrayName (ListItemTypeData.XmlType);
else
this.elementName = elementName;
if (sType == SchemaTypes.Array || sType == SchemaTypes.Class) {
hasPublicConstructor = !type.IsInterface && (type.IsArray || type.GetConstructor (Type.EmptyTypes) != null || type.IsAbstract || type.IsValueType);
}
}
示例7: CreateCustomType
public static TypeData CreateCustomType (string typeName, string fullTypeName, string xmlType, SchemaTypes schemaType, TypeData listItemTypeData)
{
TypeData td = new TypeData (typeName, fullTypeName, xmlType, schemaType, listItemTypeData);
return td;
}
示例8: GetDefaultPrimitiveTypeData
public static TypeData GetDefaultPrimitiveTypeData (TypeData primType)
{
// Returns the TypeData that is mapped by default to the clr type
// that primType represents
if (primType.SchemaType == SchemaTypes.Primitive)
{
TypeData newPrim = GetTypeData (primType.Type, null);
if (newPrim != primType) return newPrim;
}
return primType;
}
示例9: ImportEnumMapping
XmlTypeMapping ImportEnumMapping (TypeData typeData, XmlRootAttribute root, string defaultNamespace)
{
Type type = typeData.Type;
XmlTypeMapping map = helper.GetRegisteredClrType (type, GetTypeNamespace (typeData, root, defaultNamespace));
if (map != null) return map;
if (!allowPrivateTypes)
ReflectionHelper.CheckSerializableType (type, false);
map = CreateTypeMapping (typeData, root, null, defaultNamespace);
map.IsNullable = false;
helper.RegisterClrType (map, type, map.XmlTypeNamespace);
ArrayList members = new ArrayList();
#if MOONLIGHT
foreach (string name in GetEnumNames (type)) {
#else
string [] names = Enum.GetNames (type);
foreach (string name in names) {
#endif
FieldInfo field = type.GetField (name);
string xmlName = null;
if (field.IsDefined(typeof(XmlIgnoreAttribute), false))
continue;
object[] atts = field.GetCustomAttributes (typeof(XmlEnumAttribute), false);
if (atts.Length > 0) xmlName = ((XmlEnumAttribute)atts[0]).Name;
if (xmlName == null) xmlName = name;
long value = ((IConvertible) field.GetValue (null)).ToInt64 (CultureInfo.InvariantCulture);
members.Add (new EnumMap.EnumMapMember (xmlName, name, value));
}
bool isFlags = type.IsDefined (typeof (FlagsAttribute), false);
map.ObjectMap = new EnumMap ((EnumMap.EnumMapMember[])members.ToArray (typeof(EnumMap.EnumMapMember)), isFlags);
ImportTypeMapping (typeof(object)).DerivedTypes.Add (map);
return map;
}
XmlTypeMapping ImportXmlSerializableMapping (TypeData typeData, XmlRootAttribute root, string defaultNamespace)
{
Type type = typeData.Type;
XmlTypeMapping map = helper.GetRegisteredClrType (type, GetTypeNamespace (typeData, root, defaultNamespace));
if (map != null) return map;
if (!allowPrivateTypes)
ReflectionHelper.CheckSerializableType (type, false);
map = CreateTypeMapping (typeData, root, null, defaultNamespace);
helper.RegisterClrType (map, type, map.XmlTypeNamespace);
return map;
}
void ImportIncludedTypes (Type type, string defaultNamespace)
{
XmlIncludeAttribute[] includes = (XmlIncludeAttribute[])type.GetCustomAttributes (typeof (XmlIncludeAttribute), false);
for (int n=0; n<includes.Length; n++)
{
Type includedType = includes[n].Type;
ImportTypeMapping (includedType, null, defaultNamespace);
}
}
ICollection GetReflectionMembers (Type type)
{
// First we want to find the inheritance hierarchy in reverse order.
Type currentType = type;
ArrayList typeList = new ArrayList();
typeList.Add(currentType);
while (currentType != typeof(object))
{
currentType = currentType.BaseType; // Read the base type.
typeList.Insert(0, currentType); // Insert at 0 to reverse the order.
}
// Read all Fields via reflection.
ArrayList fieldList = new ArrayList();
FieldInfo[] tfields = type.GetFields (BindingFlags.Instance | BindingFlags.Public);
#if TARGET_JVM
// This statement ensures fields are ordered starting from the base type.
for (int ti=0; ti<typeList.Count; ti++) {
for (int i=0; i<tfields.Length; i++) {
FieldInfo field = tfields[i];
if (field.DeclaringType == typeList[ti])
fieldList.Add (field);
}
}
#else
currentType = null;
int currentIndex = 0;
foreach (FieldInfo field in tfields)
{
// This statement ensures fields are ordered starting from the base type.
if (currentType != field.DeclaringType)
{
currentType = field.DeclaringType;
currentIndex=0;
}
fieldList.Insert(currentIndex++, field);
}
#endif
// Read all Properties via reflection.
//.........这里部分代码省略.........
示例10: ImportXmlNodeMapping
XmlTypeMapping ImportXmlNodeMapping (TypeData typeData, XmlRootAttribute root, string defaultNamespace)
{
Type type = typeData.Type;
XmlTypeMapping map = helper.GetRegisteredClrType (type, GetTypeNamespace (typeData, root, defaultNamespace));
if (map != null) return map;
map = CreateTypeMapping (typeData, root, null, defaultNamespace);
helper.RegisterClrType (map, type, map.XmlTypeNamespace);
if (type.BaseType != null)
{
XmlTypeMapping bmap = ImportTypeMapping (type.BaseType, root, defaultNamespace);
if (type.BaseType != typeof (object))
map.BaseMap = bmap;
RegisterDerivedMap (bmap, map);
}
return map;
}
示例11: GetTypeNamespace
string GetTypeNamespace (TypeData typeData, XmlRootAttribute root, string defaultNamespace)
{
string typeNamespace = null;
XmlAttributes atts = null;
if (!typeData.IsListType)
{
if (attributeOverrides != null)
atts = attributeOverrides[typeData.Type];
}
if (atts == null)
atts = new XmlAttributes (typeData.Type);
if (atts.XmlType != null)
{
if (atts.XmlType.Namespace != null && atts.XmlType.Namespace.Length != 0 && typeData.SchemaType != SchemaTypes.Enum)
typeNamespace = atts.XmlType.Namespace;
}
if (typeNamespace != null && typeNamespace.Length != 0) return typeNamespace;
if (atts.XmlRoot != null && root == null)
root = atts.XmlRoot;
if (root != null)
{
if (root.Namespace != null && root.Namespace.Length != 0)
return root.Namespace;
}
if (defaultNamespace == null) return "";
else return defaultNamespace;
}
示例12: ReflectType
XmlTypeMapping ReflectType (TypeData typeData, string ns)
{
if (!encodedFormat)
{
if (auxXmlRefImporter == null) auxXmlRefImporter = new XmlReflectionImporter ();
return auxXmlRefImporter.ImportTypeMapping (typeData, ns);
}
else
{
if (auxSoapRefImporter == null) auxSoapRefImporter = new SoapReflectionImporter ();
return auxSoapRefImporter.ImportTypeMapping (typeData, ns);
}
}
示例13: RegisterTypeMapping
void RegisterTypeMapping (XmlQualifiedName qname, TypeData typeData, XmlTypeMapping map)
{
// Primitive types with a forced base class are stored in a different table.
// In this way it is possible to have two maps for primitive types: one with
// the forced base class (returned by ImportDerivedTypeMapping) and one
// with the regular primitive map.
dataMappedTypes [typeData] = map;
if (IsPrimitiveTypeNamespace (qname.Namespace) && !map.IsSimpleType)
primitiveDerivedMappedTypes [qname] = map;
else
mappedTypes [qname] = map;
}
示例14: GetRegisteredTypeMapping
XmlTypeMapping GetRegisteredTypeMapping (TypeData typeData)
{
return (XmlTypeMapping) dataMappedTypes [typeData];
}
示例15: CreateSystemMap
XmlTypeMapping CreateSystemMap (TypeData typeData)
{
XmlTypeMapping map = new XmlTypeMapping (typeData.XmlType, XmlSchema.Namespace, typeData, typeData.XmlType, XmlSchema.Namespace);
map.IncludeInSchema = false;
map.ObjectMap = new ClassMap ();
dataMappedTypes [typeData] = map;
return map;
}