I am working on an .NET library project, containing a bunch of interfaces which can be consumed by a service, which I am also creating. Users of the service will provide implementations of the interfaces from the library, which are then injected into the service application.
My library relies on a third-party library, which I will of course need to reference. One of the interfaces in my library, uses types from the third-party in its method signatures. This means, that implementors of this particular interface will also need to reference the third-party library. My concern is that this adds friction, distracting the user from doing the job she is really meant to do - implement that interface.
One solution to this problem would be to include the source files from the third-party library build, rather than referencing it as a seperate assembly. I am aware that this might make it somewhat harder for me to integrate updates to the third-party code in the future, but apart from that, are there any reasons why I should not consider this an option? When do you include third-party code rather than reference it?
Notes: The third-party library in question is quite small (less than 10 classes, total 1500 SLOC), and it is made available under the open-source license as my project (Apache License 2.0).