C# Class Zephyr.Domain.BaseObject

显示文件 Open project: marufbd/Zephyr.NET Class Usage Examples

Public Methods

Method Description
Equals ( object obj ) : bool
GetHashCode ( ) : int

This is used to provide the hashcode identifier of an object using the signature properties of the object; although it's necessary for NHibernate's use, this can also be useful for business logic purposes and has been included in this base class, accordingly. Since it is recommended that GetHashCode change infrequently, if at all, in an object's lifetime, it's important that properties are carefully selected which truly represent the signature of an object.

GetSignatureProperties ( ) : IEnumerable

HasSameObjectSignatureAs ( BaseObject compareTo ) : bool

You may override this method to provide your own comparison routine.

Protected Methods

Method Description
GetTypeSpecificSignatureProperties ( ) : IEnumerable

Enforces the template method pattern to have child objects determine which specific properties should and should not be included in the object signature comparison. Note that the the BaseObject already takes care of performance caching, so this method shouldn't worry about caching...just return the goods man!

GetTypeUnproxied ( ) : Type

When NHibernate proxies objects, it masks the type of the actual entity object. This wrapper burrows into the proxied object to get its actual type. Although this assumes NHibernate is being used, it doesn't require any NHibernate related dependencies and has no bad side effects if NHibernate isn't being used. Related discussion is at http://groups.google.com/group/sharp-architecture/browse_thread/thread/ddd05f9baede023a ...thanks Jay Oliver!

Method Details

Equals() public method

public Equals ( object obj ) : bool
obj object
return bool

GetHashCode() public method

This is used to provide the hashcode identifier of an object using the signature properties of the object; although it's necessary for NHibernate's use, this can also be useful for business logic purposes and has been included in this base class, accordingly. Since it is recommended that GetHashCode change infrequently, if at all, in an object's lifetime, it's important that properties are carefully selected which truly represent the signature of an object.
public GetHashCode ( ) : int
return int

GetSignatureProperties() public method

public GetSignatureProperties ( ) : IEnumerable
return IEnumerable

GetTypeSpecificSignatureProperties() protected abstract method

Enforces the template method pattern to have child objects determine which specific properties should and should not be included in the object signature comparison. Note that the the BaseObject already takes care of performance caching, so this method shouldn't worry about caching...just return the goods man!
protected abstract GetTypeSpecificSignatureProperties ( ) : IEnumerable
return IEnumerable

GetTypeUnproxied() protected method

When NHibernate proxies objects, it masks the type of the actual entity object. This wrapper burrows into the proxied object to get its actual type. Although this assumes NHibernate is being used, it doesn't require any NHibernate related dependencies and has no bad side effects if NHibernate isn't being used. Related discussion is at http://groups.google.com/group/sharp-architecture/browse_thread/thread/ddd05f9baede023a ...thanks Jay Oliver!
protected GetTypeUnproxied ( ) : Type
return System.Type

HasSameObjectSignatureAs() public method

You may override this method to provide your own comparison routine.
public HasSameObjectSignatureAs ( BaseObject compareTo ) : bool
compareTo BaseObject
return bool