Я уверен, что я где-то видел, что могу сделать следующее, используя атрибут выше моего метода Init(), который сообщает компилятору, что метод Init() должен быть вызван только из конструктора, что позволяет поле readonly. Я забыл, что называется атрибутом, и я не могу найти его в google.
public class Class
{
private readonly int readonlyField;
public Class()
{
Init();
}
// Attribute here that tells the compiler that this method must be called only from a constructor
private void Init()
{
readonlyField = 1;
}
}