Hello Support Team,
In UnifiedAutomation.UaServer, Version=3.3.1.0 there was this public class FullyInstantiatedType.
With this there was as well this method in UnifiedAutomation.UaServer.TypeManager:
public FullyInstantiatedType FindFullyInstantiatedType(NodeId typeId)
With version 4.0.0 of the .Net SDK the class FullyInstantiatedType became 'internal'.
The method UnifiedAutomation.UaServer.TypeManager.FindFullyInstantiatedType is now 'internal' as well:
internal FullyInstantiatedType FindFullyInstantiatedType(NodeId typeId)
Was this change done by intention respectively is there a replacement for FindFullyInstantiatedType?
Thanks for a reply
Michael
SDK 4.0.0 FindFullyInstantiatedType public->internal
Moderator: uasdknet
-
- Jr. Member
- Posts: 2
- Joined: 04 Oct 2023, 16:34
- Support Team
- Hero Member
- Posts: 3078
- Joined: 18 Mar 2011, 15:09
Re: SDK 4.0.0 FindFullyInstantiatedType public->internal
Hi,
The FullyInstantiatedType related code is used in the CreateObject/CreateVariable code.
In version 3.4 we added the OverrideSubtypes feature, which required a major rewrite of the FullyInstantiatedType and TypeManager code. It was not possible to do this without a breaking change. We decided to make the FullyInstantiatedType internal, because we have not seen any use case to utilize it besides in CreateObject. Since it is now internal, we do not preseve API compatibility. In fact, there will be "breaking" changes to it in version 4.1. That said our intention is that it must say internal and should not be used public.
For what you are using the FullyInstantiatedType? Maybe, we find another solution for your use case.
The FullyInstantiatedType related code is used in the CreateObject/CreateVariable code.
In version 3.4 we added the OverrideSubtypes feature, which required a major rewrite of the FullyInstantiatedType and TypeManager code. It was not possible to do this without a breaking change. We decided to make the FullyInstantiatedType internal, because we have not seen any use case to utilize it besides in CreateObject. Since it is now internal, we do not preseve API compatibility. In fact, there will be "breaking" changes to it in version 4.1. That said our intention is that it must say internal and should not be used public.
For what you are using the FullyInstantiatedType? Maybe, we find another solution for your use case.
Best regards
Unified Automation Support Team
Unified Automation Support Team
-
- Jr. Member
- Posts: 2
- Joined: 04 Oct 2023, 16:34
Re: SDK 4.0.0 FindFullyInstantiatedType public->internal
Thanks for the reply.
We used it for example to create all the optional variables of a FxAssetType. Therefore we were looking for a fully instantiated type of an FxAsset. Then we copied from this instance the variable settings for ‘TypeDefinitionId’, ‘BrowseName’, ‘DataType’, ‘ModellingRule’ etc. to build a ‘UnifiedAutomation.UaServer.CreateVariableSettings’ instance to finally call the ‘CreateVariable’ method of the node manager.
Best Regards
Michael
We used it for example to create all the optional variables of a FxAssetType. Therefore we were looking for a fully instantiated type of an FxAsset. Then we copied from this instance the variable settings for ‘TypeDefinitionId’, ‘BrowseName’, ‘DataType’, ‘ModellingRule’ etc. to build a ‘UnifiedAutomation.UaServer.CreateVariableSettings’ instance to finally call the ‘CreateVariable’ method of the node manager.
Best Regards
Michael