You've already forked linux-packaging-mono
41 lines
1.1 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|