本文整理汇总了C#中Db4objects.Db4o.Internal.ObjectReference.Read方法的典型用法代码示例。如果您正苦于以下问题:C# ObjectReference.Read方法的具体用法?C# ObjectReference.Read怎么用?C# ObjectReference.Read使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Db4objects.Db4o.Internal.ObjectReference
的用法示例。
在下文中一共展示了ObjectReference.Read方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: 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);
}