Files
linux-packaging-mono/external/aspnetwebstack/src/System.Web.Mvc/AdditionalMetaDataAttribute.cs
Jo Shields a575963da9 Imported Upstream version 3.6.0
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
2014-08-13 10:39:27 +01:00

41 lines
1.1 KiB
C#

// Copyright (c) Microsoft Corporation. All rights reserved. See License.txt in the project root for license information.
namespace System.Web.Mvc
{
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface | AttributeTargets.Property, AllowMultiple = true)]
public sealed class AdditionalMetadataAttribute : Attribute, IMetadataAware
{
private object _typeId = new object();
public AdditionalMetadataAttribute(string name, object value)
{
if (name == null)
{
throw new ArgumentNullException("name");
}
Name = name;
Value = value;
}
public override object TypeId
{
get { return _typeId; }
}
public string Name { get; private set; }
public object Value { get; private set; }
public void OnMetadataCreated(ModelMetadata metadata)
{
if (metadata == null)
{
throw new ArgumentNullException("metadata");
}
metadata.AdditionalValues[Name] = Value;
}
}
}