-
Notifications
You must be signed in to change notification settings - Fork 923
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Better NodeId/ExpandedNodeId built in types handling #2230
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
5 tasks
May be related: #2168 |
5 tasks
marcschier
approved these changes
Jul 27, 2023
The NodeId parser throws ServiceResultException on error, should it be rather ArgumentException? |
mregen
commented
Jul 27, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
feedback from code review in biweekly meeting
Codecov Report
@@ Coverage Diff @@
## master #2230 +/- ##
==========================================
+ Coverage 58.29% 58.49% +0.19%
==========================================
Files 325 326 +1
Lines 62254 62292 +38
==========================================
+ Hits 36292 36438 +146
+ Misses 25962 25854 -108
|
TimJoehnk
pushed a commit
to TimJoehnk/UA-.NETStandard
that referenced
this pull request
Aug 4, 2023
) - A NodeId string can be assigned to a NodeId and is automatically parsed. However, if the string contains a "nsu=" it is considered a string type NodeId instead of decoding the namespaceUri. To avoid this error in the code an `ArgumentException` is thrown to uncover these coding errors. Such a variable needs to be an ExpandedNodeId to be decoded correctly. - Breaking change: To reduce coding errors the user group decided to throw also on a constructor call which does not contain a nodeid type prefix and namespace index. e.g. `new NodeId("Testnode")`. If somebody wants a string NodeId in Namespace 0 then call the constructor `new NodeId("TestNode", 0)` - Implement IEquatable<NodeId>/IEquatable<ExpandedNodeId> - Tests to ensure .Distinct treats all Null NodeIds as identical. - Unit tests for constructor behavior.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Proposed changes
ArgumentException
is thrown to uncover these coding errors. Such a variable needs to be an ExpandedNodeId to be decoded correctly.new NodeId("Testnode")
. If somebody wants a string NodeId in Namespace 0 then call the constructornew NodeId("TestNode", 0)
Types of changes
What types of changes does your code introduce?
Put an
x
in the boxes that apply. You can also fill these out after creating the PR.Checklist
Put an
x
in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.Further comments
If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered, etc...