using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Reflection;
namespace ConsoleApplication1
{
[Developer("Bill","3")]
class Program
{
static void Main(string[] args)
{
//Call function to get and display the attribute.
GetAttribute(typeof(Program));
}
public static void GetAttribute(Type type)
{
//throw new NotImplementedException();
DeveloperAttribute MyAttribute =
(DeveloperAttribute)Attribute.GetCustomAttribute(type, typeof(DeveloperAttribute));
if(MyAttribute==null)
{
Console.WriteLine("This attribute was not found.");
}
Console.WriteLine("The name attribute is :{0}.",MyAttribute.Name);
Console.WriteLine("the level attribute is :{0}.", MyAttribute.Level);
Console.WriteLine("the reviewed attribute is :{0}.", MyAttribute.Reviewed);
Console.ReadKey();
}
}
class Test
{
public interface IObservableData<T> where T : class
{
Task<T> GetData();
}
}
[AttributeUsage(AttributeTargets.All, Inherited = true, AllowMultiple = false)]
public class DeveloperAttribute : Attribute
{
//Private fields
private string name;
private string level;
private bool reviewed;
//This constructor defines two required parameters
public DeveloperAttribute(string name, string level)
{
this.name = name;
this.level = level;
this.reviewed = false;
}
//Define Name property.
//This is a read-only attribute
public virtual string Name
{
get
{
return name;
}
}
public virtual string Level
{
get { return level; }
}
//this is a read/write attribute
public virtual bool Reviewed
{
get { return reviewed; }
set { reviewed = value; }
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Reflection;
namespace ConsoleApplication1
{
[Developer("Bill","3")]
class Program
{
static void Main(string[] args)
{
//Call function to get and display the attribute.
GetAttribute(typeof(Program));
}
public static void GetAttribute(Type type)
{
//throw new NotImplementedException();
DeveloperAttribute MyAttribute =
(DeveloperAttribute)Attribute.GetCustomAttribute(type, typeof(DeveloperAttribute));
if(MyAttribute==null)
{
Console.WriteLine("This attribute was not found.");
}
Console.WriteLine("The name attribute is :{0}.",MyAttribute.Name);
Console.WriteLine("the level attribute is :{0}.", MyAttribute.Level);
Console.WriteLine("the reviewed attribute is :{0}.", MyAttribute.Reviewed);
Console.ReadKey();
}
}
class Test
{
public interface IObservableData<T> where T : class
{
Task<T> GetData();
}
}
[AttributeUsage(AttributeTargets.All, Inherited = true, AllowMultiple = false)]
public class DeveloperAttribute : Attribute
{
//Private fields
private string name;
private string level;
private bool reviewed;
//This constructor defines two required parameters
public DeveloperAttribute(string name, string level)
{
this.name = name;
this.level = level;
this.reviewed = false;
}
//Define Name property.
//This is a read-only attribute
public virtual string Name
{
get
{
return name;
}
}
public virtual string Level
{
get { return level; }
}
//this is a read/write attribute
public virtual bool Reviewed
{
get { return reviewed; }
set { reviewed = value; }
}
}
}