using System; namespace ProtoBuf { /// <summary> /// Indicates that a member should be excluded from serialization; this /// is only normally used when using implict fields. /// </summary> [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false, Inherited = true)] public class ProtoIgnoreAttribute : Attribute { } /// <summary> /// Indicates that a member should be excluded from serialization; this /// is only normally used when using implict fields. This allows /// ProtoIgnoreAttribute usage /// even for partial classes where the individual members are not /// under direct control. /// </summary> [AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = false)] public sealed class ProtoPartialIgnoreAttribute : ProtoIgnoreAttribute { /// <summary> /// Creates a new ProtoPartialIgnoreAttribute instance. /// </summary> /// <param name="memberName">Specifies the member to be ignored.</param> public ProtoPartialIgnoreAttribute(string memberName) : base() { if (string.IsNullOrEmpty(memberName)) throw new ArgumentNullException(nameof(memberName)); MemberName = memberName; } /// <summary> /// The name of the member to be ignored. /// </summary> public string MemberName { get; } } }