1 // Copyright 2004-2008 Castle Project - http://www.castleproject.org/
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
7 // http://www.apache.org/licenses/LICENSE-2.0
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
15 namespace Castle
.ActiveRecord
20 /// Base class that allows specifying an access strategy to get/set the value for an object' property.
22 [AttributeUsage(AttributeTargets
.Property
, AllowMultiple
=false), Serializable
]
23 public abstract class WithAccessAttribute
: Attribute
25 private PropertyAccess access
= PropertyAccess
.Property
;
26 private string customAccess
= null;
29 /// Gets or sets the access strategy for this property
31 public PropertyAccess Access
33 get { return access; }
34 set { access = value; }
38 /// Gets or sets the custom access strategy
40 /// <value>The custom access.</value>
41 public string CustomAccess
43 get { return customAccess;}
44 set { customAccess=value;}
48 /// Gets the access strategy string for NHibernate's mapping.
50 /// <value>The access string.</value>
51 public string AccessString
55 if (CustomAccess
!= null)
60 return PropertyAccessHelper
.ToString(Access
);