Use internal when exposing low-level types like IntPtr

オープン
#97 コメント 0 件 リアクション 0 件 担当者 1 名 GitHub で見る

@ryzngard がすでに取り組んでいます。

2026年5月5日 から。

評価

この issue はまだ評価されていません。

説明

bug

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")]
主要言語
C#
スター
986
フォーク
252
平均マージ
1時間 36分
マージ済み PR(30日)
2

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

apple/unityplugins のほかの issue

apple/unityplugins の issue をすべて見る

似ている issue

C# の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。