If the existing proxy is insufficiently "narrow" (derived), instantiate a new proxy and overwrite the registration of the old one. This breaks == and occurs only for "class" proxies rather than "interface" proxies. Also init the proxy to point to the given target implementation if necessary.

Namespace: NHibernate.Engine
Assembly: NHibernate (in NHibernate.dll) Version: 3.2.0.4000 (3.2.0.4000)

Syntax

C#
Object NarrowProxy(
	INHibernateProxy proxy,
	IEntityPersister persister,
	EntityKey key,
	Object obj
)
Visual Basic
Function NarrowProxy ( _
	proxy As INHibernateProxy, _
	persister As IEntityPersister, _
	key As EntityKey, _
	obj As Object _
) As Object
Visual C++
Object^ NarrowProxy(
	INHibernateProxy^ proxy, 
	IEntityPersister^ persister, 
	EntityKey^ key, 
	Object^ obj
)

Parameters

proxy
Type: NHibernate.Proxy..::..INHibernateProxy
The proxy instance to be narrowed.
persister
Type: NHibernate.Persister.Entity..::..IEntityPersister
The persister for the proxied entity.
key
Type: NHibernate.Engine..::..EntityKey
The internal cache key for the proxied entity.
obj
Type: System..::..Object
(optional) the actual proxied entity instance.

Return Value

An appropriately narrowed instance.

See Also