private void InitArgs(Type objType) { this.xmlWriterArg = this.ilg.GetArg(0); this.contextArg = this.ilg.GetArg(2); this.dataContractArg = this.ilg.GetArg(3); this.objectLocal = this.ilg.DeclareLocal(objType, "objSerialized"); ArgBuilder arg = this.ilg.GetArg(1); this.ilg.Load(arg); if (objType == Globals.TypeOfDateTimeOffsetAdapter) { this.ilg.ConvertValue(arg.ArgType, Globals.TypeOfDateTimeOffset); this.ilg.Call(XmlFormatGeneratorStatics.GetDateTimeOffsetAdapterMethod); } else { this.ilg.ConvertValue(arg.ArgType, objType); } this.ilg.Stloc(this.objectLocal); }
private void InitArgs(Type objType) { _xmlWriterArg = _ilg.GetArg(0); _contextArg = _ilg.GetArg(2); _dataContractArg = _ilg.GetArg(3); _objectLocal = _ilg.DeclareLocal(objType, "objSerialized"); ArgBuilder objectArg = _ilg.GetArg(1); _ilg.Load(objectArg); // Copy the data from the DataTimeOffset object passed in to the DateTimeOffsetAdapter. // DateTimeOffsetAdapter is used here for serialization purposes to bypass the ISerializable implementation // on DateTimeOffset; which does not work in partial trust. if (objType == Globals.TypeOfDateTimeOffsetAdapter) { _ilg.ConvertValue(objectArg.ArgType, Globals.TypeOfDateTimeOffset); _ilg.Call(XmlFormatGeneratorStatics.GetDateTimeOffsetAdapterMethod); } else if (objType == Globals.TypeOfMemoryStreamAdapter) { _ilg.ConvertValue(objectArg.ArgType, Globals.TypeOfMemoryStream); _ilg.Call(XmlFormatGeneratorStatics.GetMemoryStreamAdapterMethod); } //Copy the KeyValuePair<K,T> to a KeyValuePairAdapter<K,T>. else if (objType.IsGenericType && objType.GetGenericTypeDefinition() == Globals.TypeOfKeyValuePairAdapter) { ClassDataContract dc = (ClassDataContract)DataContract.GetDataContract(objType); _ilg.ConvertValue(objectArg.ArgType, Globals.TypeOfKeyValuePair.MakeGenericType(dc.KeyValuePairGenericArguments !)); _ilg.New(dc.KeyValuePairAdapterConstructorInfo !); } else { _ilg.ConvertValue(objectArg.ArgType, objType); } _ilg.Stloc(_objectLocal); }
private void IsStartElement(ArgBuilder nameArg, ArgBuilder nsArg) { _ilg.Call(_xmlReaderArg, XmlFormatGeneratorStatics.IsStartElementMethod2, nameArg, nsArg); }