IDispoasble в WCF - объекты, общие по сети [дубликат]

Я нахожу, что

final Button yourButton = (Button)view.findViewById(R.id.your_button);
yourButton.setFocusable(false);
yourButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        ...///);

может решить проблему. Если вы хотите получить некоторые данные при нажатии кнопки, полезно использовать теги. Здесь кнопка объявляется окончательной, потому что она будет использоваться внутри внутреннего класса.

4
задан denver 9 September 2014 в 20:52
поделиться

1 ответ

WCF не несет ответственности за объект. WCF просто сериализует объект, который вы передаете в него с одной стороны, и создает новый с другой стороны.

Там действительно ничего, что WCF может взять на себя. Поэтому я не уверен, почему вы думаете, что WCF будет иметь какие-либо причины для размещения объекта, переданного ему.

Обычно, вы сделали бы что-то вроде этого:

var proxy = new MyService();

var myobject = new MyObject();

proxy.Send(myobject);

// here myobject is still alive, and you can still do things with it.. 

EDIT:

Мне кажется, что вы действительно говорите о возвращенном значении из службы. В этом случае да .. по умолчанию WCF будет вызывать dispose по обоим параметрам, которые передаются и возвращаются. Однако это контролируется свойством OperationBehaviorAttribute.AutoDisposeParameters, которое по умолчанию имеет значение true.

Если вы установите для этого значения значение false, вы несете ответственность за вызов dispose, как правило, в обработчике событий OperationContext.OperationCompleted.

5
ответ дан denver 26 August 2018 в 13:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: