2452 {
2454 {
2456 }
2457 if (element.Mapping
is ArrayMapping)
2458 {
2460 }
2461 else if (element.Mapping
is NullableMapping)
2462 {
2470 }
2471 else if (element.Mapping
is PrimitiveMapping)
2472 {
2473 bool flag = false;
2474 if (element.IsNullable)
2475 {
2481 if (element.Mapping.TypeDesc.IsValueType)
2482 {
2483 throw Globals.NotSupported("No such condition. PrimitiveMapping && IsNullable = String, XmlQualifiedName and never IsValueType");
2484 }
2488 flag = true;
2489 }
2490 if (element.Default !=
null && element.Default !=
DBNull.Value && element.Mapping.TypeDesc.IsValueType)
2491 {
2503 flag = true;
2504 }
2505 if (element.Mapping.TypeDesc.Type ==
typeof(
TimeSpan) || element.Mapping.TypeDesc.Type ==
typeof(DateTimeOffset))
2506 {
2528 }
2529 else
2530 {
2532 if (element.Mapping.TypeDesc ==
base.QnameTypeDesc)
2533 {
2537 }
2538 else
2539 {
2540 string formatterName = element.Mapping.TypeDesc.FormatterName;
2542 }
2544 }
2545 if (flag)
2546 {
2548 }
2549 }
2550 else if (element.Mapping
is StructMapping)
2551 {
2552 TypeMapping
mapping = element.Mapping;
2555 {
2565 }
2569 if (
mapping.TypeDesc.IsNullable)
2570 {
2573 }
2580 {
2582 }
2583 }
2584 else
2585 {
2586 if (!(element.Mapping
is SpecialMapping))
2587 {
2589 }
2592 {
2594 {
2602 {
2604 }
2606 break;
2607 }
2609 {
2612 {
2630 }
2634 {
2635 typeof(IXmlSerializable),
2637 });
2641 {
2643 }
2645 {
2647 }
2650 {
2652 }
2655 {
2658 }
2659 break;
2660 }
2661 default:
2663 }
2664 }
2666 {
2671 }
2672 }
void Add(TKey key, TValue value)
static string XmlInternalError
void MarkLabel(Label label)
void ConvertValue(Type source, Type target)
LocalBuilder DeclareOrGetLocal(Type type, string name)
void Call(MethodInfo methodInfo)
void InitObj(Type valueType)
LocalBuilder GetTempLocal(Type type)
void Stloc(Type type, string name)
void Castclass(Type target)
void Ldloca(LocalBuilder localBuilder)
void Ldloc(LocalBuilder localBuilder)
XmlSerializationILGen(TypeScope[] scopes, string access, string className)
string ReferenceMapping(TypeMapping mapping)
MethodBuilder EnsureMethodBuilder(TypeBuilder typeBuilder, string methodName, MethodAttributes attributes, Type returnType, Type[] parameterTypes)
void WriteSourceBegin(string source)
void WriteSourceEnd(string source, Type elementType)
void WriteDerivedSerializable(SerializableMapping head, SerializableMapping mapping, string source, bool isWrappedAny)
void WriteQNameEqual(string source, string name, string ns)
void WriteArray(string source, string arrayName, ArrayMapping arrayMapping, bool readOnly, bool isNullable, int fixupIndex, int elementIndex)
void WriteUnknownNode(string func, string node, ElementAccessor e, bool anyIfs)
void WritePrimitive(TypeMapping mapping, string source)
void ILGenSet(string source, object value)
void WriteSourceBeginTyped(string source, TypeDesc typeDesc)
@ InvalidOperationException