No announcement yet.

Updates and problem encountered

  • Filter
  • Time
  • Show
Clear All
new posts

    A pull-request for the IAsyncResult implementation for Task has been submitted. Once a review and testing are complete the feature will be included in the upcoming Bridge 17.8.0 release.


      Support for Convert.ChangeType is being tracked in issue #977. A pull request has been submitted. Once a final review and testing are complete, the feature should be added to the upcoming Bridge 17.8.0 release.


        I have started patching the core Bridge library to implement the features I need. My progress can be tracked here: So far I have implemented long array operators, TypeCode, and ChangeType.


          Hello @johnwason!

          Looks like there could be some overlapping then. I have just reviewed Vladimir's work for GetTypeCode() implementation (which includes TypeCode and ChangeType).

          Also a pull request for IAsyncResult has been submitted and preliminary tests indicate it is good for the next release too.

          About the changes you're making in bridge for potential pull requests, I would suggest you to do each functionality/feature/fix to a separate branch -- and branch off a fork from our dev branch (instead of master). This way if there's something with a specific fix, a whole pull request won't be lost/delayed, aside of making the review much more reliable and streamlined.

          Maybe you could drop changes to TypeCode and ChangeType, and fork just the long array operators to a branch, if you're planning to contribute with pull requests.

          Hope this helps, and sorry for the conflict and any potential time loss with functionalities, more fixes may be coming out as we type here!


            And send a pull-request to the repo if you add functionality. Once we have a pull-request, we'll be able to review properly and go from there.


              I think we must have started some of the patches at the same time. Please let me know promptly what you are working on or plan to start soon. I am going to tackle Attribute.GetCustomAttribute and Websocket base class next.

              I found the code for AsyncRead and AsyncWrite in the core microsoft repo. It can be found here on line 407 - 440 and 702 - 733. Having CopyToAsync might be useful as well on lines 126 - 176. The changes should simply require cutting and pasting the code into your source file since it just calls BeginRead/BeginWrite, however it does use some task features I am not sure are implemented.

              I also looked at the Uri class for EscapeData and UnescapeData in the ms repo. I think that supporting more of the Uri functionality is necessary in general, but the implementation is extremely verbose. Do you have any plans on how to improve this class? I will at a minimum need EscapeData and UnescapeData to avoid modifications to my core software.


                We are currently working on all 17.8.0 milestone issues. If the issue has an in-progress label, then the issue has a pull-request and will be under review until closed.

                Each PR is developed in its own branch. Once the PR is reviewed and final testing complete, the PR is merged into the dev branch. Once the release is ready, we will merge all the changes from the dev branch into the master branch.

                After 17.8.0 is released, we will create a new 17.9.0 milestone.

                Hope this helps.
                Last edited by geoffrey.mcgill; 2019-05-22 @ 12:59 AM.


                  I created a pull request for the array changes. I tried building the "dev" branch, but it is asking for Bridge.Html5 and Bridge.Test versions that are not available on NuGet. I can build the Bridge.sln, but I can't run update the unit tests found in Bridge.Dev.sln. How should I handle this?


                    Hello @johnwason!

                    Originally posted by johnwason
                    I tried building the "dev" branch, but it is asking for Bridge.Html5 and Bridge.Test versions that are not available on NuGet.
                    Yes, that's a problem. For one, you can just build Bridge.Html5 off its dev branch on its bridgedotnet/Frameworks repository.

                    For convenience, here's a temp link for its NuGet package: Bridge.Html5.17.8.0.nupkg.

                    And the test packages:
                    - Bridge.Test.Core.1.12.0.nupkg
                    - Bridge.Test.1.12.0.nupkg

                    Let us know if you get more requirements you can't fulfill to build it. We may need to come up with a plan to push these packages regularly somewhere. If stuck, you can just work on master branch as you're doing, then we'll re-base the pull request to dev in the pull request. Then hope that no conflicts may delay or eventually block the merge process.


                      Your dropbox packages worked, thank you.

                      I ran into another issue trying to use Attribute.GetCustomAttributes and implement Attribute.GetCustomAttribute for use with a Type parameter. It looks like Type does not extend MemberInfo as it should, so there are no available overloads that work with Type. When I added the superclass MemberInfo to Type, I had an issue with the relevant methods not being virtual. These methods are extern templates, and I am unclear how these work with inheritance. My assumption is that they will not be dispatched correctly. I have a similar issue trying to implement the WebSocket superclass for ClientWebSocket.

                      Also, it looks like TaskFactory is required to adapt ReadAsync and BeginRead type methods. This is covered in detail here: . Having the ability to go from APM to TAP and vice versa is important for asynchronous communication.


                        Any updates on the issues from my previous post?


                          Do you have specific Issue #'s? All issues that we're currently working on are tagged for 17.8.0 milestone.


                            ok, sorry, I missed what you were referring to. I see it's the comments in the following post:



                              We haven't had a chance to investigate your comments about Attribute.GetCustomAttributes or TaskFactory.


                                Can you clarify how overriding methods works for external classes? I am not clear how they are dispatched to the correct implementation.