[Mono-bugs] [Bug 483247] New: IsDefined on methods does not work for interface-type queries

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Sun Mar 8 19:03:27 EDT 2009


https://bugzilla.novell.com/show_bug.cgi?id=483247


           Summary: IsDefined on methods does not work for interface-type
                    queries
    Classification: Mono
           Product: Mono: Class Libraries
           Version: 2.2.x
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: CORLIB
        AssignedTo: mono-bugs at lists.ximian.com
        ReportedBy: azizatif at gmail.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---


Created an attachment (id=277887)
 --> (https://bugzilla.novell.com/attachment.cgi?id=277887)
Sample program to reproduce the bug

User-Agent:       Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; GTB5;
SLCC1; .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.5.21022; WWTClient2;
NET CLR 3.5.30729; .NET CLR 3.0.30618; MS-RTC LM 8)

Suppose an attribute implements an interface. When IsDefined is called on a
MethodInfo object to check whether the attribute is defined on the method or
not and the first argument is the interface type then IsDefined returns false.
The Microsoft .NET Framework implementation, on the other hand, returns true
for the same scenario.

Reproducible: Always

Steps to Reproduce:
Following is the source code of a simple C# console program to demonstrate the
bug:

using System;

interface IFoo {}

[AttributeUsage(AttributeTargets.Method)]
class FooAttribute : Attribute, IFoo {}

class Bar
{
    [Foo]
    public void Baz() {}
}

static class Program
{
    static void Main()
    {
        var method = typeof(Bar).GetMethod("Baz");
        Console.WriteLine("FooAttribute? " +
method.IsDefined(typeof(FooAttribute), true));
        Console.WriteLine("IFoo? " + method.IsDefined(typeof(IFoo), true));
    }
}

Actual Results:  
The output of the program demonstrating the bug is:

FooAttribute? True
IFoo? False


Expected Results:  
The expected output was:

FooAttribute? True
IFoo? True

-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the mono-bugs mailing list