我在我的只读属性中返回对字典的引用.如何防止消费者更改我的数据?如果这是一个IList我可以简单地返回它AsReadOnly.我能用字典做些什么吗?
Private _mydictionary As Dictionary(Of String, String)
Public ReadOnly Property MyDictionary() As Dictionary(Of String, String)
Get
Return _mydictionary
End Get
End Property
Run Code Online (Sandbox Code Playgroud) 我正在研究我的第一个T4代码生成工具,为我的项目添加一些存储过程帮助程序代码.我已经创建了自定义类型(例如StoredProcedure,StoredProcedureParameter以帮助我生成代码,并在我的代码中包含了程序集和命名空间引用:
<#@ template debug="false" hostspecific="false" language="VB" #>
<#@ output extension=".generated.vb" #>
<#@ assembly name="$(TargetPath)" #>
<#@ import namespace="StoredProcCodeGenerator" #>
Run Code Online (Sandbox Code Playgroud)
这允许我在我的T4模板代码中使用我的自定义类型.但是,因为我的自定义类型与T4模板代码存在于同一个项目中,所以在运行模板代码而不重新启动Visual Studio时,我无法重新编译项目.这不是很有趣.
我读了一篇很棒的文章,通过使用T4工具箱解决了这个问题,但是它没有用.要么我执行VolatileAssembly指令错误,要么T4工具箱根本没有安装.我不确定工具箱是否正确安装(我在Win XP上使用VS 2010).
有什么方法可以解决这个问题?