Is it possible somehow to achieve this behavior in C#:

public interface IReadOnly
{
    Data Value { get; }
}

internal interface IWritable : IReadOnly 
{
    Data Value { get; set; }
}

I want to be able to expose a readonly interface to outside assemblies, but use a writable interface internally (which I could also implement in different ways).

I know I can use an abstract class which implements IReadOnly but adds setters, but that forces me to derive all internal implementations from that class.

Edit
Report