Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Remove InternalsVisibleTo from Core to XF.Platforms.* #782
Description of Change
We hired contractors to build out new backends. They will not live in the XF repo so internal functionality in Core used by our renderers needs to be exposed publicly for use by their renderers.
Core allows our renderers to access its internal members by applying InternalsVisibleToAttribute (IVT) to itself for each platform assembly. This PR comments out those IVT attributes and fixes the resulting build errors. This is done by either (1) exposing an internal class publicly and changing it's namespace to
IMHO, ultimately, the contractors code should live in the XF repo (maybe in another branch) and each core/platform assembly pair should be merged into a single assembly. This would eliminate this extra scope as well as the need for
None. The public surface area we support is unchanged.
None. The change should result in no behavioral changes.
I reviewed the Core part, and wow, this is massive ! I've left comments here and there, here are some additional generic ones:
- whenever you can, use Controller interface
- when implementing controller interfaces, always implement explicitly
- if a controller isn’t suitable and you want to turn an internal setter public, consider writing an extension method in the Internals namespace
- do not open generic helpers we use internally, esp when they can be rewritten in a handful of seconds (ReflectionExtensions, NumericExtensions, ...).
We want this to be done quickly, but we want it to be correct as well. Ping me for additional review when needed.
If unsure, I'm fine if we break this into manageable and reviewable chunks...