Removed untyped contructor from ComponentRegistration and add a protected setter.
[castle.git] / InversionOfControl / Castle.MicroKernel / Registration / Property.cs
blob249ccccfff0662e92a2f6da762d557fcf5341062
1 // Copyright 2004-2008 Castle Project - http://www.castleproject.org/
2 //
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
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
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.MicroKernel.Registration
17 using System;
19 /// <summary>
20 /// Represents a key/value pair.
21 /// </summary>
22 public class Property
24 private readonly String key;
25 private readonly object value;
27 internal Property(String key, Object value)
29 this.key = key;
30 this.value = value;
33 /// <summary>
34 /// Gets the property key.
35 /// </summary>
36 public string Key
38 get { return key; }
41 /// <summary>
42 /// Gets the property value.
43 /// </summary>
44 public object Value
46 get { return value; }
49 /// <summary>
50 /// Create a <see cref="PropertyKey"/> with key.
51 /// </summary>
52 /// <param name="key">The property key.</param>
53 /// <returns>The new <see cref="PropertyKey"/></returns>
54 public static PropertyKey ForKey(String key)
56 return new PropertyKey(key);
60 /// <summary>
61 /// Represents a property key.
62 /// </summary>
63 public class PropertyKey
65 private readonly String name;
67 internal PropertyKey(String name)
69 this.name = name;
72 /// <summary>
73 /// The property key name.
74 /// </summary>
75 public string Name
77 get { return name; }
80 /// <summary>
81 /// Builds the <see cref="Property"/> with key/value.
82 /// </summary>
83 /// <param name="value">The property value.</param>
84 /// <returns>The new <see cref="Property"/></returns>
85 public Property Eq(Object value)
87 return new Property(name, value);