Added generalized installation capabilities to Windsor (analogous to Kernel registration)
[castle.git] / Tools / ManagedExtensions / ManagementExtensions / ManagedInstance.cs
blob5e0d885a1045d0af7e09cdcd6fbe42d2a898c93d
1 // Copyright 2003-2004 DigitalCraftsmen - http://www.digitalcraftsmen.com.br/
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.ManagementExtensions
17 using System;
19 /// <summary>
20 /// Represents an instance of and Managed class.
21 /// </summary>
22 [Serializable]
23 public class ManagedInstance
25 protected String typeName;
26 protected ManagedObjectName name;
28 /// <summary>
29 /// Creates a ManagedInstance instance.
30 /// </summary>
31 /// <param name="typeName">Full qualified name of the type</param>
32 /// <param name="name"><see cref="ManagedObjectName"/> of instance.</param>
33 public ManagedInstance(String typeName, ManagedObjectName name)
35 if (typeName == null)
37 throw new ArgumentNullException("typeName");
39 if (name == null)
41 throw new ArgumentNullException("name");
44 this.name = name;
45 this.typeName = typeName;
48 public String TypeName
50 get
52 return typeName;
56 public ManagedObjectName Name
58 get
60 return name;
64 public override bool Equals(object obj)
66 ManagedInstance other = (ManagedInstance) obj;
68 if (other != null)
70 return other.name.Equals(name) &&
71 other.typeName.Equals(typeName);
74 return false;
77 public override int GetHashCode()
79 return name.GetHashCode() ^ typeName.GetHashCode();