ロックの検知
SessionSwitch イベントでこのようにトラップ
Private Sub SessionSwitch(ByVal sender As Object, ByVal e As SessionSwitchEventArgs)
Try
Select Case e.Reason
Case SessionSwitchReason.ConsoleConnect
Case SessionSwitchReason.ConsoleDisconnect
Case SessionSwitchReason.RemoteConnect
Case SessionSwitchReason.RemoteDisconnect
Case SessionSwitchReason.SessionLock
Debug.WriteLine(“監禁されたでござる")
Case SessionSwitchReason.SessionUnlock
Debug.WriteLine(“恩赦でござる")
Case SessionSwitchReason.SessionLogon
Case SessionSwitchReason.SessionLogoff
End Select
Catch ex As Exception このようなメソッドを
SystenEvent.SessionSwitch イベントに
End Try AddHandler 等で関連付ければOK
End Sub
WCF セルフホスト
Dim localServiceAddressAs Uri() = {New Uri(“net.pipe://localhost/サービスアドレス")}
Dim svType As Type = GetType([サービスクラス])
Dim svInst As New ServiceHost(svType, localServiceAddress)
Dim nmPipeBnd As Binding = New NetNamedPipeBinding(NetNamedPipeSecurityMode.None)
nmPipeBnd.Namespace = BINDING_NAMESPACE
Dim procesMetadata As New ServiceMetadataBehavior
svInst.AddServiceEndpoint(GetType([サービスインターフェース]), nmPipeBnd, String.Empty)
svInst.Description.Behaviors.Add(procesMetadata)
セルフホスト側( 9行)
svInst.Open()
Dim namedPipe As Binding = New NetNamedPipeBinding(NetNamedPipeSecurityMode.None)
Dim localAddress As New EndpointAddress(“net.pipe://localhost/サービスアドレス")
Dim chFact As New ChannelFactory(Of [サービスインターフェース])(namedPipe, localAddress)
chFact.Open() クライアント側( 5行)
Dim cProxy As [サービスインターフェース] = chFact.CreateChannel