wcf自定義繫結

2022-07-08 04:24:11 字數 2308 閱讀 4094

一,建立自定義繫結

有時候我們需要建立自己的繫結,這在很多情況下不是出於特殊的安全要求和使用的傳輸協議。為了建立自定義的繫結,需要建立一組繫結元素。繫結元素是由system.servicemodel.channels.bindingelement派生而來的。

**1,使用http傳輸協議和binary編碼格式的自定義繫結:

除了用配置方式建立乙個自定義繫結,也可以採用程式設計方式。

**2,用程式設計方式配置乙個自定義繫結:

class

program

] ", item.binding.name, item.address.uri.tostring());

}console.readline();

host.close();

}catch

(communicationexception ex)

catch

(timeoutexception ex)

catch

(exception ex)

}}

二,重用自定義繫結

有時,可能需要建立乙個能夠重複用於不同解決方案的自定義繫結。由於每個繫結都派生於system.servicemodel.channels.binding這個抽象基類,我們只需建立自己的繫結類,並實現createbindingelement方法即可實現此目的。

**1,由基類binding建立乙個可重用的自定義繫結:

public

class

nettcptextbinding : binding

public

override

bindingelementcollection createbindingelements()

public

override

string

scheme

}private

void

initialize()

}

**2,使用nettcptextbing繫結:

nettcptextbinding binding = new

nettcptextbinding();

servicehost host = new servicehost(typeof

(service1));

host.addserviceendpoint(

typeof

(iservice1),

binding,

"net.tcp://localhost:10101/iservice");

host.open();

如果需要通過配置檔案使用自定義繫結,必須先擴充套件bindingcollectionelement抽象基類,然後再實現需要的方法。

**3,實現nettcptextbindingcollectionelement:

namespace

}public

override readonlycollectionconfiguredbindings

}public

override

bool containskey(string

name)

protected

override

binding getdefault()

protected

override

bool tryadd(string

name, binding binding, configuration config)

}}

現在,如果要在配置檔案中使用自定義繫結nettcptextbinding,就必須用繫結擴充套件()配置nettcptextbindingcollectionelement元素。總之,如果要在配置檔案中使用自定義繫結,就需要先進行定義。

**4,在配置檔案中使用自定義繫結nettcptextbinding:

"

wcfservicelibrary2.service1

">

"net.tcp://localhost:10101/iservice

"binding="

nettcptextbinding

"contract="

wcfservicelibrary2.iservice1

">

"nettcptextbinding

" type="

" />

2013-03-30

WCF 關於自定義MessageHeader支援

我們在專案中有些公共資訊可以不通過方法引數提供,將這些資訊封裝到messageheader,通過客戶端提交給server。這種情況下我們需要注意wcf不同的例項模式 會話模式對header的支援情況 實力模式 instancecontextmode percall persession支援heade...

Vue自定義雙向繫結

父子元件雙向繫結v model非表單元素 children.vue h1 template export default props mounted 3000 script parent.vue message children template import children from compo...

JS 繫結自定義屬性

1 繫結自定義屬性 1 元素節點.屬性或元素節點 屬性 繫結的屬性不會出現在標籤中,setattribute可以出現在標籤中。2 setattribute獲取不到元素節點.屬性形式繫結的屬性值,同樣元素節點.屬性也獲取不到setattribute繫結的屬性值 2 繫結內部規定屬性 1 元素節點.屬性...