At the moment, we do not have specific C# examples to share or an SDK to leverage.
As a general guideline, you need to ensure that you send your payload with a Content-Type: multipart/form-data
header, and send the binary file rather than encoding it as base64.
You can also find C# wrappers other people have used, but we cannot guarantee how well they will work for you. You can use them as a reference knowing they are not official in any way.
https://github.com/cal5barton/frontsharp
It does seem to implement multipart requests for sending messages: https://github.com/cal5barton/frontsharp/blob/1162814b99bc21974f6a8cc1d9c28cba849ee216/FrontSharp/FrontSharp/Requests/MessageRequests.cs#L62-L66
I see it hasn't been updated in a couple of years so it is possible that it might not be fully compatible with today's version of the API, but it should at least be a good starting point. For reference, I don't believe we have updated how attachments are expected to be provided for several years, so that part should work fine, provided the library works as expected!
--Jason