I want to create instance of an Object using new class so that I do not have to write the code again and again. I have implemented the basic code way instance as follows:
Code: Select all
//class Lesson2NodeManager
private void CreateDeviceTypeAddessSpaceStructure()
{
...
CreateObjectSettings device1 = new CreateObjectSettings()
//objSettings = new CreateObjectSettings()
{
ParentNodeId = devices.NodeId,
BrowseName = new QualifiedName("Device_Instance1", InstanceNamespaceIndex),
ReferenceTypeId = ReferenceTypeIds.Organizes,
RequestedNodeId = new NodeId("Device_Instace1", InstanceNamespaceIndex),
TypeDefinitionId = new NodeId(1003, TypeNamespaceIndex)
};
CreateObject(Server.DefaultRequestContext, device1);
...
}
But I have created a new class DynamicInstances.cs
Code: Select all
public class DynamicInstances: BaseNodeManager
{
#region Fields
private CreateObjectSettings objSetting;
#endregion
public DynamicInstances(ServerManager server): base(server)
{
}
public void CreateNodeInstance(ObjectNode parentNodeId, string browseName, uint typeDefinitionNodeId)
{
objSetting = new CreateObjectSettings()
{
BrowseName = new QualifiedName(browseName, InstanceNamespaceIndex),
ParentNodeId = parentNodeId.NodeId,
ReferenceTypeId = ReferenceTypeIds.Organizes,
RequestedNodeId = new NodeId(browseName, InstanceNamespaceIndex),
//TypeDefinitionId = new NodeId((uint)1003, TypeNamespaceIndex)
TypeDefinitionId = new NodeId (typeDefinitionNodeId, TypeNamespaceIndex)
};
Console.WriteLine();
CreateObject(Server.DefaultRequestContext, objSetting);
}
}
Code: Select all
instance2 = new DynamicInstances(this.Server);
instance2.CreateNodeInstance(devices, "MyInstance2", 1003);
Please assist me in this issue.
Thanks a lot,
Jack