методы. Мой вопрос был больше о том, как работает внутренний счетчик ссылок и в какой момент он увеличивается.

я есть приложение, которое использует сборки взаимодействия Office. Мне известно о «Runtime Callable Wrapper (RCW)», управляемом средой выполнения. Но я не очень уверен, как счетчик ссылок увеличивается. MSDN говорит,

RCW хранит только одну ссылку на обернутый COM-объект независимо от количества вызывающих его управляемых клиентов.

Если я правильно понимаю, на следующем примере,

using Microsoft.Office.Interop.Word;

static void Foo(Application wrd)
{
    /* .... */
}

static void Main(string[] args)
{
    var wrd = new Application();
    Foo(wrd);
    /* .... */
}

Я передаю экземплярwrd в другой метод. Но это не увеличивает внутренний счетчик ссылок. Поэтому мне интересно, по каким сценариям счетчик ссылок увеличивается? Кто-нибудь может указать на сценарий, где счетчик ссылок увеличивается?

Также я читаю некоторый блог, в котором говорится, что избегайте использования двойных точек при программировании с объектами COM Что-то вроде,wrd.ActiveDocument.ActiveWindow, Автор утверждает, что компилятор создает отдельные переменные для хранения значений, которые увеличивают счетчик ссылок. ИМХО, это неправильно, и первый пример это доказывает. Это правильно?

Любая помощь будет отличной!

Ответы на вопрос(0)

Ваш ответ на вопрос