-
Notifications
You must be signed in to change notification settings - Fork 286
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
SqlClient UDT support needs an assembly-plugin model #79
Comments
I'm realizing this is phrased like a question, when it was more of a rhetorical question (since you can't do this today) |
I wonder if it would work with "open source signing" (see this special MSBuild task). It uses the public key to give an assembly the same identity without requiring the private key. The only restriction is that you can't GAC it. |
Get the original public key using |
Given the new guidance that you should check in your signing keys to your repo, I'd love to be able to just sign my assembly with the same key, so assembly redirect could "just work". However since |
Wait what?!? I can extract and re-use their key? |
Note this is different than the recent open source guidance around strong name keys. It's a bit of magic for stealing an assembly's identity without having its private key. This is why strong naming is not about security. 😉 |
|
Also note strong naming is different than code signing. Code signing is about security; those signatures are verified. |
So I did get it working just by delay-signing with the public key. Not sure what the repercussions about this (I couldn't get the special OpenSourceSign task to run) but since it's doable, we could probably close this thread. |
@dotMorten I would vote for keeping this open. I am thinking about what you said in #1 (comment), and I believe there is still an opportunity to enable plugging in your own types without having to hack with signing. |
As recently announced in the .NET Blog, focus on new SqlClient features an improvements is moving to the new Microsoft.Data.SqlClient package. For this reason, we are moving this issue to the new repo at https://github.com/dotnet/SqlClient. We will still use https://github.com/dotnet/corefx to track issues on other providers like System.Data.Odbc and System.Data.OleDB, and general ADO.NET and .NET data access issues. |
Since we have open issues for supporting missing SqlTypes in .NET Core, closing this issue.
|
I built a .NET Standard implementation of the
Microsoft.SqlServer.Types
classes. This works great for insertion, but when deserializing I'll get an exception like this:Instead I have to write something like:
This makes sense, because SqlClient has no idea I provided an implementation it could use. Assembly redirect only works for assemblies with the same name and public key, so that's not really an option.
How do we across all the different platforms allow us to use UDT in assemblies defined on each platform, and get the SqlClient to import the types?
The issue is somewhat called out in the doc:
A .NET Standard Implementation of the geometry types for reference which can be used as an example (just tweak unit tests to call
GetValue
instead ofGetSqlBytes
on the data reader):https://github.com/dotMorten/Microsoft.SqlServer.Types/blob/89c5e6158867d9603d93fde6286a0f32f01fa96d/src/Microsoft.SqlServer.Types.Tests/DBTests.cs#L81
The text was updated successfully, but these errors were encountered: