This documentation is archived and is not being maintained.

Compiler Error CS0617

'reference' is not a valid named attribute argument. Named attribute arguments must be fields which are not readonly, static or const, or read-write properties which are not static.

An attempt was made to access a private member of an attribute class.

The following sample generates CS0617:

// CS0617.cs
using System;

[AttributeUsage(AttributeTargets.Struct|AttributeTargets.Class|AttributeTargets.Interface)]
public class MyClass : Attribute
{
   public int Name;

   public MyClass (int sName)
   {
      Name = sName;
      Bad = -1;
   }

   public readonly int Bad;
   // try the following line instead
   // public int Bad;
}

[MyClass(5, Bad=0)] class Class1   // CS0617
{
}

public class MyClass2
{
   public static void Main ()
   {
   }
}
Show: