dotnet/runtime

Properly factor DllImports into Common\src\Interop

Open

#28,035 opened on Nov 30, 2018

View on GitHub
 (23 comments) (0 reactions) (0 assignees)C# (5,445 forks)batch import
area-Metaenhancementgood first issuehelp wantedtracking

Repository metrics

Stars
 (17,886 stars)
PR merge metrics
 (Avg merge 12d 11h) (661 merged PRs in 30d)

Description

We now have a bunch of libraries with their own DllImports, whereas the expected approach is that all DllImports in product src should be included from src\Common\src\Interop, appropriately factored by platform and library, and then those source files included into the relevant assemblies that need them.

  • Microsoft.Diagnostics.Tracing.EventSource.Redist
  • System.Data.SqlClient
  • System.Diagnostics.EventLog
  • System.DirectoryServices
  • System.DirectoryServices.AccountManagement
  • System.DirectoryServices.Protocols
  • System.Drawing.Common
  • System.IO.Compression
  • System.IO.Compression.Brotli
  • System.IO.Ports
  • System.Management
  • System.Reflection.Metadata
  • System.Runtime.Caching
  • System.Security.Cryptography.Csp
  • System.Security.Cryptography.Pkcs
  • System.Security.Cryptography.X509Certificates

This all needs to be refactored and dedup'd.

https://github.com/dotnet/corefx/blob/master/Documentation/coding-guidelines/interop-guidelines.md

Contributor guide