using System;
using System.Reflection;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using System.Diagnostics;
using Barotrauma;
namespace QIDependencyInjection
{
///
/// Properties marked with [Dependency] will be injected,
/// and their own properties will be injected
///
public class DependencyAttribute : System.Attribute { }
///
/// Properties marked with [EntryPoint] will be created if == null
/// and then their own properties will be injected
///
public class EntryPointAttribute : System.Attribute { }
///
/// Properties marked with [Singleton] will be created, added to Singletons and injected
///
public class SingletonAttribute : System.Attribute { }
///
/// it's a stupid optimization attempt
/// Classes marked with [HasStaticDependencies] will be scanned in InjectStaticProperties(Assembly assembly, bool onlyIfHasStaticDependencies = true)
///
public class HasStaticDependenciesAttribute : System.Attribute { }
///
/// Classes marked with [DontInjectStatic] won't be injected by InjectStaticProperties(Assembly assembly, bool onlyIfHasStaticDependencies = true)
/// For test classes
///
public class DontInjectStaticAttribute : System.Attribute { }
}