internal XmlSerializationCodeGen(IndentedWriter writer, TypeScope[] scopes, string access, string className)
 {
     _writer = writer;
     _scopes = scopes;
     if (scopes.Length > 0)
     {
         _stringTypeDesc = scopes[0].GetTypeDesc(typeof(string));
         _qnameTypeDesc  = scopes[0].GetTypeDesc(typeof(XmlQualifiedName));
     }
     _raCodeGen = new ReflectionAwareCodeGen(writer);
     _className = className;
     _access    = access;
 }
 internal XmlSerializationILGen(TypeScope[] scopes, string access, string className)
 {
     _scopes = scopes;
     if (scopes.Length > 0)
     {
         _stringTypeDesc = scopes[0].GetTypeDesc(typeof(string));
         _qnameTypeDesc  = scopes[0].GetTypeDesc(typeof(XmlQualifiedName));
     }
     _raCodeGen = new ReflectionAwareILGen();
     _className = className;
     System.Diagnostics.Debug.Assert(access == "public");
     _typeAttributes = TypeAttributes.Public;
 }
Esempio n. 3
0
 private void CheckSupportedMember(TypeDesc?typeDesc, MemberInfo member, Type type)
 {
     if (typeDesc == null)
     {
         return;
     }
     if (typeDesc.IsUnsupported)
     {
         typeDesc.Exception ??= new NotSupportedException(SR.Format(SR.XmlSerializerUnsupportedType, typeDesc.FullName));
         throw new InvalidOperationException(SR.Format(SR.XmlSerializerUnsupportedMember, $"{member.DeclaringType!.FullName}.{member.Name}", type.FullName), typeDesc.Exception);
     }
     CheckSupportedMember(typeDesc.BaseTypeDesc, member, type);
     CheckSupportedMember(typeDesc.ArrayElementTypeDesc, member, type);
 }