using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using Chernobyl.Attribution;
using Chernobyl.Event;
using Chernobyl.Reflection;
using Chernobyl.Values;
namespace Chernobyl.Dependency
{
///
/// An that retrieves the value of a parameter that
/// is attributed with an . If the parameter is
/// attributed with an whose
/// key is an and whose value is an
/// holding an object, then that instance will be used to retrieve the parameter.
/// Otherwise, the parameter will be taken from an .
///
[AttributeUsage(AttributeTargets.Parameter)]
public class GetAttribute : Attribute, IGetAttribute
{
///
/// Returns the value of the specified attribute provider. The attribute
/// provider must be the instance that this
/// was attributing.
///
/// The instance this
/// was
/// attributing.
///
/// The value of the requested item.
///
public IValue