Is your feature request related to a problem? Please describe.
No, this is about hardening the API.
Exposing low-level types like IntPtr as public in user-facing code is bad practice for an interop library like this. It causes excessive, unnecessary information and APIs being exposed to users, which could lead to confusion and error-prone code being made with it.
Describe the solution you'd like
Refactor client-facing low-level members, constructors, etc. to be internal (or protected internal if necessary). For example, NSArray<T> has a public constructor with an IntPtr parameter. Users do not need to know about this, and makes the API messier for those trying to simply interface with it. Using an AssemblyInfo.cs can allow internal members to be available to other Apple assemblies without having to expose unnecessary data to users.
Describe alternatives you've considered
There are none.
Additional context
https://docs.unity3d.com/2020.1/Documentation/Manual/ScriptCompilationAssemblyDefinitionFiles.html
Example AssemblyInfo.cs file:
using System.Runtime.CompilerServices;
[assembly: InternalsVisibleTo("Apple.Core.Tests")]
Is your feature request related to a problem? Please describe.
No, this is about hardening the API.
Exposing low-level types like
IntPtraspublicin user-facing code is bad practice for an interop library like this. It causes excessive, unnecessary information and APIs being exposed to users, which could lead to confusion and error-prone code being made with it.Describe the solution you'd like
Refactor client-facing low-level members, constructors, etc. to be
internal(orprotected internalif necessary). For example,NSArray<T>has apublicconstructor with anIntPtrparameter. Users do not need to know about this, and makes the API messier for those trying to simply interface with it. Using anAssemblyInfo.cscan allowinternalmembers to be available to other Apple assemblies without having to expose unnecessary data to users.Describe alternatives you've considered
There are none.
Additional context
https://docs.unity3d.com/2020.1/Documentation/Manual/ScriptCompilationAssemblyDefinitionFiles.html
Example
AssemblyInfo.csfile: