12rbah, Так вариантов помимо TCP уйма. Есть через шаринг файла, через Memory mapped file, Named Pipe, обьекты синхронизации и т.д. зависит от того что вы по итогу хотите получить
Николай, Второе ложное убеждение, что код методов классов размещается в динамической памяти. ))) У всех методов классов есть скрытый первый аргумент, в который передается адрес инстанса класса. (Если обьяснять простыми словами). Поэтому размер методов не влияет на размер выделяемой памяти для инстанса класса.
Роман, Вы застряли в своих убеждениях. )) Нет затыка. Создается менеджер, что будет хранить состояние приложения, для примера ITestManager, определяем его на singletone и он и будет опрашиваться в методе-фабрике какую реализацию предоставить.
А Transient определение не кеширует обьект и поэтому всегда будет возвращаться нужный, что создан на базе условия по значению из ITestManager
Роман, У вас в методе фабрике доступен serviceProvider и из него вы можете получить все, что нужно. Для примера ISmtpConfiguration, где есть флаг UseSSL.
Это стандартная практика.
Роман Кофф, "Результат первого вычисления остается в регистре и берется оттуда." а почему он должен это делать?
Ни один оптимизатор кода такое делать не будет. Результат функции может зависеть от времени запуска или выдавать вообще случайное значение, и оптимизатор это не может узнать.
"Если я меняю адрес с 127.0.0.1 на другой..." Что-то вы темните, замена строкового значения на другое строковое значение никак не должна влиять на компиляцию.