1

目前,我使用以下技巧通过将扩展方法隐藏在唯一命名的命名空间中来使文件本地化。它并没有真正隐藏它,但只要没有其他人导入命名空间,那就很酷了。但是图案很丑。下面的代码只是为了说明扩展方法的技巧。不要试图对我对 ISubject 所做的事情下任何结论;)

MyFancyComponent.cs

--

Import MyFancyComponentMixins
Namespace MyFancyComponentMixins
    Module X
        <Extension>
        Public Function Format(s As ISubject(Of Double)) as ISubject(Of String)
            Return s.LocalizeLengthUnits().
                Select(
                parser:=Function(x) Double.Parse(x),
                formatter:=Function(x) x.ToString("0.00"))

        End Function
    End Module
End Namespace

class MyFancyComponent
    Inherits ReactiveUserControl(of MyFancyViewModel)


    Public Overrides Iterator Function  MakeReactiveBindings() as IEnumerable(of IDisposable)
        Yield Me.ViewModel.
            PropertySubject(Function(x) x.Height).
            Format().
            BindToControl(Me.HeightTextBox)
        Yield Me.ViewModel.
            PropertySubject(Function(x) x.Width).
            Format().
            BindToControl(Me.WidthTextBox)
    End Function



end class
4

0 回答 0