本文整理汇总了C#中ILocalNode类的典型用法代码示例。如果您正苦于以下问题:C# ILocalNode类的具体用法?C# ILocalNode怎么用?C# ILocalNode使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ILocalNode类属于命名空间,在下文中一共展示了ILocalNode类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Copy
/// <summary>
/// Returns a copy of the node
/// </summary>
/// <param name="source">The source.</param>
/// <returns>A copy of the source node</returns>
public static Node Copy(ILocalNode source)
{
if (source == null)
{
return null;
}
switch (source.NodeClass)
{
case NodeClass.Object: return new ObjectNode(source);
case NodeClass.Variable: return new VariableNode(source);
case NodeClass.ObjectType: return new ObjectTypeNode(source);
case NodeClass.VariableType: return new VariableTypeNode(source);
case NodeClass.DataType: return new DataTypeNode(source);
case NodeClass.ReferenceType: return new ReferenceTypeNode(source);
case NodeClass.Method: return new MethodNode(source);
case NodeClass.View: return new ViewNode(source);
}
if (source is IObject) return new ObjectNode(source);
if (source is IVariable) return new VariableNode(source);
if (source is IObjectType) return new ObjectTypeNode(source);
if (source is IVariableType) return new VariableTypeNode(source);
if (source is IDataType) return new DataTypeNode(source);
if (source is IReferenceType) return new ReferenceTypeNode(source);
if (source is IMethod) return new MethodNode(source);
if (source is IView) return new ViewNode(source);
return new Node(source);
}
示例2: DefaultObjectLookup
public DefaultObjectLookup(
ILocalNode localNode,
IObjectStorage objectStorage,
IClientLookup clientLookup,
IMessageConstructor messageConstructor,
IMessageSideChannel messageSideChannel)
{
this.m_LocalNode = localNode;
this.m_ObjectStorage = objectStorage;
this.m_ClientLookup = clientLookup;
this.m_MessageConstructor = messageConstructor;
this.m_MessageSideChannel = messageSideChannel;
}
示例3: SetPropertyMessageHandler
public SetPropertyMessageHandler(
ILocalNode localNode,
IObjectStorage objectStorage,
IObjectWithTypeSerializer objectWithTypeSerializer,
IMessageConstructor messageConstructor,
IClientLookup clientLookup)
{
this.m_LocalNode = localNode;
this.m_ObjectStorage = objectStorage;
this.m_ObjectWithTypeSerializer = objectWithTypeSerializer;
this.m_MessageConstructor = messageConstructor;
this.m_ClientLookup = clientLookup;
}
示例4: Node
/// <summary>
/// Creates a node from another node (copies attributes - not references).
/// </summary>
/// <param name="source">The source.</param>
public Node(ILocalNode source)
{
Initialize();
if (source != null)
{
this.NodeId = source.NodeId;
this.NodeClass = source.NodeClass;
this.BrowseName = source.BrowseName;
this.DisplayName = source.DisplayName;
this.Description = source.Description;
this.WriteMask = (uint)source.WriteMask;
this.UserWriteMask = (uint)source.UserWriteMask;
}
}
示例5: Apply
public static void Apply(object result, ILocalNode localNode)
{
if (result != null)
{
if (result is ITransparent)
(result as ITransparent).Node = localNode;
else if (result.GetType().IsArray)
{
if (typeof(ITransparent).IsAssignableFrom(result.GetType().GetElementType()))
{
foreach (var elem in (IEnumerable)result)
{
if (elem != null)
(elem as ITransparent).Node = localNode;
}
}
else if (!result.GetType().GetElementType().IsValueType && result.GetType() != typeof(string))
throw new InvalidOperationException("Unable to assign local node to result data for " + result.GetType().GetElementType().FullName);
}
else if (!result.GetType().IsValueType && result.GetType() != typeof(string))
throw new InvalidOperationException("Unable to assign local node to result data for " + result.GetType().FullName);
}
}
示例6: GetTargetNode
private ILocalNode GetTargetNode(
ILocalNode source,
NodeId referenceTypeId,
bool isInverse,
bool includeSubtypes,
QualifiedName browseName)
{
return null;
}
示例7: VariableNode
/// <summary>
/// Creates a node from another node (copies attributes - not references).
/// </summary>
/// <param name="source">The source.</param>
public VariableNode(ILocalNode source) : base(source)
{
this.NodeClass = NodeClass.Variable;
IVariable variable = source as IVariable;
if (variable != null)
{
this.DataType = variable.DataType;
this.ValueRank = variable.ValueRank;
this.AccessLevel = variable.AccessLevel;
this.UserAccessLevel = variable.UserAccessLevel;
this.MinimumSamplingInterval = variable.MinimumSamplingInterval;
this.Historizing = variable.Historizing;
object value = variable.Value;
if (value == null)
{
value = TypeInfo.GetDefaultValue(variable.DataType, variable.ValueRank);
}
this.Value = new Variant(value);
if (variable.ArrayDimensions != null)
{
this.ArrayDimensions = new UInt32Collection(variable.ArrayDimensions);
}
}
}
示例8: ObjectNode
/// <summary>
/// Creates a node from another node (copies attributes - not references).
/// </summary>
/// <param name="source">The source.</param>
public ObjectNode(ILocalNode source) : base(source)
{
this.NodeClass = NodeClass.Object;
IObject node = source as IObject;
if (node != null)
{
this.EventNotifier = node.EventNotifier;
}
}
示例9: GetSynchronisationStore
public SynchronisationStore GetSynchronisationStore(ILocalNode node, string name)
{
if (this.m_SyncStore == null)
this.m_SyncStore = new Distributed<PreprocessedSyncTest_SynchronisedStore>(node, name);
return this.m_SyncStore;
}
示例10: ReadEURange
/// <summary>
/// Reads the EU Range for a variable.
/// </summary>
private ServiceResult ReadEURange(OperationContext context, ILocalNode node, out Range range)
{
range = null;
IVariable target = GetTargetNode(node, ReferenceTypes.HasProperty, false, true, BrowseNames.EURange) as IVariable;
if (target == null)
{
return StatusCodes.BadNodeIdUnknown;
}
range = target.Value as Range;
if (range == null)
{
return StatusCodes.BadTypeMismatch;
}
return ServiceResult.Good;
}
示例11: UnreferenceSharedNode
public ILocalNode UnreferenceSharedNode(
ILocalNode source,
NodeId referenceTypeId,
bool isInverse,
QualifiedName browseName)
{
return null;
}
示例12: ObjectTypeNode
/// <summary>
/// Creates a node from another node (copies attributes - not references).
/// </summary>
/// <param name="source">The source.</param>
public ObjectTypeNode(ILocalNode source) : base(source)
{
this.NodeClass = NodeClass.ObjectType;
IObjectType node = source as IObjectType;
if (node != null)
{
this.IsAbstract = node.IsAbstract;
}
}
示例13: ViewNode
/// <summary>
/// Creates a node from another node (copies attributes - not references).
/// </summary>
/// <param name="source">The source.</param>
public ViewNode(ILocalNode source) : base(source)
{
this.NodeClass = NodeClass.View;
IView node = source as IView;
if (node != null)
{
this.EventNotifier = node.EventNotifier;
this.ContainsNoLoops = node.ContainsNoLoops;
}
}
示例14: DataTypeNode
/// <summary>
/// Creates a node from another node (copies attributes - not references).
/// </summary>
/// <param name="source">The source.</param>
public DataTypeNode(ILocalNode source) : base(source)
{
this.NodeClass = NodeClass.DataType;
IDataType node = source as IDataType;
if (node != null)
{
this.IsAbstract = node.IsAbstract;
}
}
示例15: MethodNode
/// <summary>
/// Creates a node from another node (copies attributes - not references).
/// </summary>
/// <param name="source">The source.</param>
public MethodNode(ILocalNode source) : base(source)
{
this.NodeClass = NodeClass.Method;
IMethod node = source as IMethod;
if (node != null)
{
this.Executable = node.Executable;
this.UserExecutable = node.UserExecutable;
}
}