cscore is a minimal-footprint library providing commonly used helpers & patterns for your C# projects. It can be used in both pure C# and Unity projects.
Currently IFileRef enforces that also setters are included in the concrete implementations of it, extract a parent interface of IFileRef that does not require setters and review in which methods a switch to this IReadableFileRef is possible.
Some of the current methods might make use of the set methods and will have to use the current IFileRef. For these methods separate new methods that use IReadableFileRef plus mutation callbacks should be created so that every helper method in cscore can also be used with IReadableFileRef objects.
Currently IFileRef enforces that also setters are included in the concrete implementations of it, extract a parent interface of IFileRef that does not require setters and review in which methods a switch to this IReadableFileRef is possible. Some of the current methods might make use of the set methods and will have to use the current IFileRef. For these methods separate new methods that use IReadableFileRef plus mutation callbacks should be created so that every helper method in cscore can also be used with IReadableFileRef objects.