예제 #1
0
 internal static bool IsInReadContext(this IParameterSymbol p, CesilTypes types)
 => IsInOfType(p, types.ReadContext);
예제 #2
0
        internal static bool TryCreate(Compilation compilation, out CesilTypes?types)
        {
            var generateSerializerAttribute = compilation.GetTypeByMetadataName("Cesil.GenerateSerializerAttribute");

            if (generateSerializerAttribute == null)
            {
                types = null;
                return(false);
            }

            var serializerMemberAttribute = compilation.GetTypeByMetadataName("Cesil.SerializerMemberAttribute");

            if (serializerMemberAttribute == null)
            {
                types = null;
                return(false);
            }

            var writeContext = compilation.GetTypeByMetadataName("Cesil.WriteContext");

            if (writeContext == null)
            {
                types = null;
                return(false);
            }

            var generateDeserializerAttribute = compilation.GetTypeByMetadataName("Cesil.GenerateDeserializerAttribute");

            if (generateDeserializerAttribute == null)
            {
                types = null;
                return(false);
            }

            var deserializerMemberAttribute = compilation.GetTypeByMetadataName("Cesil.DeserializerMemberAttribute");

            if (deserializerMemberAttribute == null)
            {
                types = null;
                return(false);
            }

            var deserializerInstanceProviderAttribute = compilation.GetTypeByMetadataName("Cesil.DeserializerInstanceProviderAttribute");

            if (deserializerInstanceProviderAttribute == null)
            {
                types = null;
                return(false);
            }

            var readContext = compilation.GetTypeByMetadataName("Cesil.ReadContext");

            if (readContext == null)
            {
                types = null;
                return(false);
            }

            types = new CesilTypes(generateSerializerAttribute, serializerMemberAttribute, writeContext, generateDeserializerAttribute, deserializerMemberAttribute, deserializerInstanceProviderAttribute, readContext);
            return(true);
        }