DataReader.ReadAttributeData C# (CSharp) Method

ReadAttributeData() public static method

public static ReadAttributeData ( CustomAttribute, obsoleteExAttribute, bool throwsNotImplemented ) : AttributeData,
obsoleteExAttribute CustomAttribute,
throwsNotImplemented bool
return AttributeData,
    public static AttributeData ReadAttributeData(CustomAttribute obsoleteExAttribute, bool throwsNotImplemented)
    {
        var treatAsErrorFromVersionString = obsoleteExAttribute.GetValue("TreatAsErrorFromVersion");
        var removeInVersionString = obsoleteExAttribute.GetValue("RemoveInVersion");

        return new AttributeData
                   {
                       Message = obsoleteExAttribute.GetValue("Message"),
                       Replacement = obsoleteExAttribute.GetValue("ReplacementTypeOrMember"),
                       TreatAsErrorFromVersion = treatAsErrorFromVersionString,
                       RemoveInVersion = removeInVersionString,
                       ThrowsNotImplemented = throwsNotImplemented
        };
    }

Usage Example

Example #1
0
    void InnerProcess(IMemberDefinition memberDefinition)
    {
        var customAttributes    = memberDefinition.CustomAttributes;
        var obsoleteExAttribute = customAttributes.FirstOrDefault(x => x.AttributeType.Name == "ObsoleteExAttribute");

        if (obsoleteExAttribute == null)
        {
            return;
        }
        var throwsNotImplmented = false;
        var methodDefinition    = memberDefinition as MethodDefinition;

        if (methodDefinition != null)
        {
            throwsNotImplmented = ThrowsNotImplmented(methodDefinition);
            if (methodDefinition.IsGetter || methodDefinition.IsSetter)
            {
                var error = $"ObsoleteExAttribute is not valid on property gets or sets. Member: `{memberDefinition.FullName}`.";
                LogError(error);
            }
        }
        else
        {
            var propertyDefinition = memberDefinition as PropertyDefinition;
            if (propertyDefinition != null)
            {
                throwsNotImplmented = ThrowsNotImplmented(propertyDefinition);
            }
        }

        customAttributes.Remove(obsoleteExAttribute);


        var attributeData = DataReader.ReadAttributeData(obsoleteExAttribute, throwsNotImplmented);

        try
        {
            ApplyVersionConvention(attributeData);
        }
        catch (WeavingException exception)
        {
            throw new WeavingException($"Could not process {memberDefinition.FullName}. {exception.Message}");
        }

        ValidateVersion(memberDefinition, attributeData);

        AddObsoleteAttribute(attributeData, customAttributes);
        if (HideObsoleteMembers)
        {
            AddEditorBrowsableAttribute(customAttributes);
        }
    }