anx.framework/ANX.Framework/Content/ContentSerializerAttribute.cs

75 lines
2.1 KiB
C#
Raw Normal View History

2011-10-31 05:36:24 +00:00
#region Using Statements
using System;
2012-10-10 19:26:53 +00:00
using ANX.Framework.NonXNA.Development;
2011-10-31 05:36:24 +00:00
#endregion // Using Statements
// This file is part of the ANX.Framework created by the
// "ANX.Framework developer group" and released under the Ms-PL license.
// For details see: http://anxframework.codeplex.com/license
2011-10-31 05:36:24 +00:00
namespace ANX.Framework.Content
{
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)]
2012-10-10 19:26:53 +00:00
[Developer("GinieDP")]
2011-10-31 05:36:24 +00:00
public sealed class ContentSerializerAttribute : Attribute
{
public string ElementName { get; set; }
public bool FlattenContent { get; set; }
public bool Optional { get; set; }
private bool allowNull = true;
public bool AllowNull
{
get { return this.allowNull; }
set { this.allowNull = value; }
}
public bool SharedResource { get; set; }
private string collectionItemName;
public string CollectionItemName
{
get
{
if (string.IsNullOrEmpty(this.collectionItemName))
{
return "Item";
}
return this.collectionItemName;
}
set
{
if (string.IsNullOrEmpty(value))
{
throw new ArgumentNullException("value");
}
this.collectionItemName = value;
}
}
public bool HasCollectionItemName
{
get
{
return !string.IsNullOrEmpty(this.collectionItemName);
}
}
public ContentSerializerAttribute Clone()
{
return new ContentSerializerAttribute
{
ElementName = this.ElementName,
FlattenContent = this.FlattenContent,
Optional = this.Optional,
allowNull = this.allowNull,
SharedResource = this.SharedResource,
collectionItemName = this.collectionItemName
};
}
}
}