スキップしてメイン コンテンツに移動

投稿

7月, 2014の投稿を表示しています

INotifyPropertyChangedとジェネリクスとリフレクションの相性の悪さ

仕事でちょっとやっていて困ったのでメモ代わりに記録しておく。
INotifyPropertyChangedインターフェイスとジェネリクスとリフレクションの合わせ技を使った時に相性の悪さがあった。
具体的には以下の状態だ。

このインターフェイスがあったとする。
interface IValue where TValue : struct {     TValue Value { get; set; } } これを実装するクラスhogeを作成。このプロパティの変更通知のためにINotifyPropertyChangedを実装する。

class hoge : INotifyPropertyChanged, , IValue , IValue { private int v = 0; string IValue.Value { get { return v.ToString(); } set { if (v.ToString() == value) return; v = decimal.Parse(value); OnPropertyChanged("Value"); } } int IValue.Value { get { return v; } set { if (v == value) return; v = value; OnPropertyChanged("Value"); } } protected OnPropertyChanged(string name) { if(this.PropertyChanged != null) this.PropertyChanged(this, new PropertyChangedEventArgs(name)); } } もうお分かりだと思う。INotifyPropertyChang…

VyOS 1.0.4でルーターに挑戦4

リモートVPNに挑戦。2ndプロバイダが契約中に自力テスト。
IPSEC+L2TP set vpn ipsec ipsec-interfaces interface pppoe0
set vpn ipsec nat-traversal enable
set vpn ipsec nat-networks allowed-network ローカルIPアドレス/マスク
set vpn l2tp remote-access outside-address グローバルIPアドレス
set vpn l2tp remote-access ipsec-settings authentication mode pre-shared-secret
set vpn l2tp remote-access ipsec-settings authentication pre-shared-secret 適当な認証キー文字列
set vpn l2tp remote-access ipsec-settings ike-lifetiime 7200
set vpn l2tp remote-access mtu 1280
set vpn l2tp remote-access client-ip-pool start DHCP開始アドレス
set vpn l2tp remote-access client-ip-pool stop DHCP終了アドレス
set vpn l2tp remote-access dns-servers server-1 DNSサーバーアドレス
set vpn l2tp remote-access authentication local-users username VPN接続用ユーザー名
set vpn l2tp remote-access authentication local-users username VPN password パスワード
set vpn l2tp remote-access authentication mode local これで事前認証キーを設定すればVPN接続が完成。しかし知り合いの家からは接続出来ず。自宅テストではPPPoE接続で繋いでたのでルーター越しの問題を考えていなかった。L2TPではご家庭用ルーターではNGなことも多い。
PPT…