27 lines
747 B
C#
27 lines
747 B
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Encompass.Exceptions;
|
|
|
|
namespace Encompass
|
|
{
|
|
[AttributeUsage(AttributeTargets.Class)]
|
|
public class Writes : Attribute
|
|
{
|
|
public readonly List<Type> writeTypes;
|
|
|
|
public Writes(params Type[] writeTypes)
|
|
{
|
|
foreach (var writeType in writeTypes)
|
|
{
|
|
if (!writeType.GetInterfaces().Contains(typeof(IMessage)) && !writeType.GetInterfaces().Contains(typeof(IComponent)))
|
|
{
|
|
throw new IllegalWriteTypeException("{0} must be a Message or Component", writeType.Name);
|
|
}
|
|
}
|
|
|
|
this.writeTypes = new List<Type>(writeTypes);
|
|
}
|
|
}
|
|
}
|