Frequently Asked Questions
Where's [Enter name here] API?
File a bug
and we'll add it to the backlog.
Can I share the types from PclContrib with my platform-specific projects?
No, not currently. While the types in PclContrib look and feel like their platform-specific counterparts, the runtime and compiler will see them as completely different types. While we have some ideas on how to make this work, this is a feature that we won't
be looking at for the short term.
How does this PclContrib work under the covers?
There are two types of APIs in PclContrib:
- Fully portable: These are types (such as BackgroundWorker) that have been completely rewritten in "portable" code and do not require the platform-specific adapter assemblies (such as Portable.Desktop) to be present alongside the application.
The source code for these types can be copy and pasted easily into existing projects.
- Portable adapters: These are types (such as HMACSHA256) that underneath use adapters that delegate to platform-specific types. These require the platform-specific adapter assemblies to be present alongside the application. The first time you attempt
to use one these APIs, Portable.Runtime will automatically find and load the appropriate platform-specific adapter assembly for which it will delegate the calls onto.