Context:
Classes ValueTypes Interfaces Delegates and Events Enums Fields Methods Constructors Properties Indexers Operators Iterators
![]() |
*> Define attributes on a class
class-id MyClass
attribute WebService(name Description = "My service")
attribute Obsolete.
*> Define attributes on a field
01 a binary-long attribute XmlAttribute("UpperB")
attribute Obsolete static.
01 b string attribute CLSCompliant(false)
*> Define attributes on a property
*> Note that in this case, the attributes must follow
*> the reserved word PROPERTY
01 b binary-long property
attribute XmlAttribute("UpperB")
attribute Obsolete static.
*> Define attributes on an event
*> Note that the attributes must follow
*> the reserved word EVENT.
01 d type fred event
attribute Obsolete static.
*> Define attributes on a method
method-id main
attribute Obsolete static.
procedure division
move 999 to a
display a
end method.
*> Define attributes on a method parameter and return type
method-id stat static.
procedure division
using by value l1 as binary-long
attribute CLSCompliant(true)
attribute MarshalAs(3)
returning l2 as binary-long
attribute CLSCompliant(true)
attribute MarshalAs(2).
move 999 to a
display a
set d to null
end method.
*> Define attributes on a property
method-id set property prop
attribute Obsolete static.
procedure division using by value l1 as binary-long.
move l1 to a
end method.
end class.
*> Define attribute on a delegate
delegate-id fred attribute Obsolete.
procedure division using by value l1 as binary-long.
end delegate.
You can specify attributes using:
01 a binary-long attribute xml("UpperB").
attribute WebService(NAME Description="My service")
Attributes (also known as custom attributes) are used to provide additional information about elements within your program. Attributes may be used to describe methods, data items, properties, events, delegates, method parameters, assemblies, classes and method return values.
Much of the syntax used in a COBOL program describes program elements, such as the visibility of methods and fields (such as PUBLIC, PRIVATE and PROTECTED). All these descriptions are embedded as ‘Metadata’ into the dll or exe file output by the Compiler, and can be interrogated by other programs using Reflection. Attributes are a way of adding additional metadata to program elements in a way that is open ended and unlimited.
The attribute specified becomes part of the metadata describing the subject of the entry and is visible to a reflector.