本文整理汇总了C#中Db4objects.Db4o.Internal.Transaction.RemoveReference方法的典型用法代码示例。如果您正苦于以下问题:C# Transaction.RemoveReference方法的具体用法?C# Transaction.RemoveReference怎么用?C# Transaction.RemoveReference使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Db4objects.Db4o.Internal.Transaction
的用法示例。
在下文中一共展示了Transaction.RemoveReference方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ActivatePending
internal void ActivatePending(Transaction ta)
{
while (_stillToActivate != null)
{
// TODO: Optimize! A lightweight int array would be faster.
IEnumerator i = new Iterator4Impl(_stillToActivate);
_stillToActivate = null;
while (i.MoveNext())
{
ObjectContainerBase.PendingActivation item = (ObjectContainerBase.PendingActivation
)i.Current;
ObjectReference @ref = [email protected];
object obj = @ref.GetObject();
if (obj == null)
{
ta.RemoveReference(@ref);
}
else
{
@ref.ActivateInternal(ActivationContextFor(ta, obj, item.depth));
}
}
}
}
示例2: Bind2
public ObjectReference Bind2(Transaction trans, ObjectReference oldRef, object obj
)
{
int id = oldRef.GetID();
trans.RemoveReference(oldRef);
ObjectReference newRef = new ObjectReference(ClassMetadataForObject(obj), id);
newRef.SetObjectWeak(this, obj);
newRef.SetStateDirty();
trans.ReferenceSystem().AddExistingReference(newRef);
return newRef;
}
示例3: GetHardObjectReferenceById
public HardObjectReference GetHardObjectReferenceById(Transaction trans, int id)
{
if (id <= 0)
{
return HardObjectReference.Invalid;
}
ObjectReference @ref = trans.ReferenceForId(id);
if (@ref != null)
{
// Take care about handling the returned candidate reference.
// If you loose the reference, weak reference management might also.
object candidate = @ref.GetObject();
if (candidate != null)
{
return new HardObjectReference(@ref, candidate);
}
trans.RemoveReference(@ref);
}
@ref = new ObjectReference(id);
object readObject = @ref.Read(trans, new LegacyActivationDepth(0), Const4.AddToIdTree
, true);
if (readObject == null)
{
return HardObjectReference.Invalid;
}
// check class creation side effect and simply retry recursively
// if it hits:
if (readObject != @ref.GetObject())
{
return GetHardObjectReferenceById(trans, id);
}
return new HardObjectReference(@ref, readObject);
}