Извиняюсь, что задаю вопрос здесь. Тема — на стыке Delphi и C#, и при это я ни фига не знаю Com.
Создаю простой класс на C# — MyClass, с public методами и полями, ни от чего не наследованный. Все не нужное снаружи в этом классе делаю не public.
public MyClass : IMyClass
{
...
}
Ставлю в свойствах .Net проекта галку Make com visible и при сборке .Net автоматически создает для него интерфейс и MyClass.tlb.
В Delphi я делаю Inport Type Library выбирая сгенерированный tlb, который создает MyClass_tlb.pas и в нем много чего разного, в том числе класс TMyClass и интерфейс _MyClass.
Ну допустим тут все нормально, могу создать объект вызовом
CreateComObject(CLASS_MyClass) as _MyClass;
и использовать его.
Или использовать класс TMyClass.
Но вот беда — вот этот Delphi генератор все property делает readonly. В программе на Delphi приходится использовать методы Set_... сгенерированные этим генератором, например: Set_Property1(string Value).
Как сделать так, чтобы Delphi генератор делал property не readonly?
Может в C# коде надо какие-то атрибуты поставить для полей класса MyClass?
Я подумал, допустим я явно объявлю интерфейс IMyClass и скажу компилятору C# не создавать интерфейс автоматически. И размечтался, что это мне поможет.
Но не тут то было, стало еще хуже ))))