与同事就此进行了友好的辩论.我们对此有一些想法,但想知道SO人群对此有何看法?
我需要向第三方插件公开实体框架数据上下文.目的是允许这些插件仅获取数据,而不是让它们发出插入,更新或删除或任何其他数据库修改命令.因此,我如何只读取数据上下文或实体.
.net datacontext entity-framework readonly entity-framework-4
我正在使用Docker,我想安装一个变化很大的dyanmic文件夹(所以我不必为每个执行器生成docker,这会太昂贵),但我希望该文件夹只读.然而,将文件夹所有者更改为其他人的工作chown需要root访问权限,我不希望将其暴露给应用程序.
当我使用-vflag挂载时,它会提供我给出的任何用户名,我在docker镜像中创建了一个非root用户,但是卷中所有文件与所有者作为运行docker的用户,更改为我提供的用户命令行,所以我无法制作只读文件和文件夹.我怎么能阻止这个?
我还添加了mustafa ALL=(docker) NOPASSWD: /usr/bin/docker,所以我可以通过终端更改为另一个用户,但文件仍然拥有我的用户的权限.
我在我的界面中声明了一个readonly属性:
@property (readonly, nonatomic, copy) NSString* eventDomain;
Run Code Online (Sandbox Code Playgroud)
也许我误解了属性,但我认为当你声明它时readonly,你可以在implementation(.m)文件中使用生成的setter ,但是外部实体不能改变它的值.这个问题说的是应该发生的事情.这就是我追求的行为.但是,当尝试使用标准setter或dot语法设置eventDomain我的init方法时,它会给我一个unrecognized selector sent to instance.错误.我当然是@synthesize属于该物业.试着像这样使用它:
// inside one of my init methods
[self setEventDomain:@"someString"]; // unrecognized selector sent to instance error
Run Code Online (Sandbox Code Playgroud)
我是否误解readonly了财产上的声明?或者还有其他事情发生了吗?
我正在寻找与Java相当的C#final.它存在吗?
C#是否包含以下内容:
public Foo(final int bar);
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,bar是一个只读变量,不能更改Foo().有没有办法在C#中做到这一点?
比如,也许我还有很长的方法,将与其合作x,y和z一些对象(整数)的坐标.我想绝对肯定该函数不会以任何方式改变这些值,从而破坏数据.因此,我想宣读它们.
public Foo(int x, int y, int z) {
// do stuff
x++; // oops. This corrupts the data. Can this be caught at compile time?
// do more stuff, assuming x is still the original value.
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试Readonly使用OneWayToSourceas模式绑定到属性,但似乎无法在XAML中完成:
<controls:FlagThingy IsModified="{Binding FlagIsModified,
ElementName=container,
Mode=OneWayToSource}" />
Run Code Online (Sandbox Code Playgroud)
我明白了:
无法设置属性"FlagThingy.IsModified",因为它没有可访问的set访问器.
IsModified是只读DependencyProperty的FlagThingy.我想将该值绑定到FlagIsModified容器上的属性.
要明确:
FlagThingy.IsModified --> container.FlagIsModified
------ READONLY ----- ----- READWRITE --------
Run Code Online (Sandbox Code Playgroud)
这可能只使用XAML吗?
更新:嗯,我通过在容器上设置绑定而不是在容器上修复此情况FlagThingy.但我仍然想知道这是否可行.
如何在管理界面中将模型完全只读?这是一种日志表,我使用管理功能进行搜索,排序,过滤等,但不需要修改日志.
如果这看起来像重复,这不是我想要做的:
我不知道什么时候属性应该是私有的,如果我应该使用属性.
我最近读到,setter和getter不是pythonic,我应该使用属性装饰器.没关系.
但是,如果我有属性,那么不能从类外部设置但可以读取(只读属性).这个属性应该是私有的,私有的我是指下划线,就像那样self._x?如果是,那么如何在不使用getter的情况下阅读它?我现在唯一知道的方法是写
@property
def x(self):
return self._x
Run Code Online (Sandbox Code Playgroud)
这样我可以读取属性obj.x但我无法设置它obj.x = 1所以它没关系.
但是我真的应该关心设置不能设置的对象吗?也许我应该离开它.但是我再也不能使用下划线,因为obj._x用户读取很奇怪,所以我应该使用obj.x然后再次用户不知道他不能设置这个属性.
你有什么看法和实践?
我需要在我的类型上实现只读属性.此外,此属性的值将在构造函数中设置,并且不会更改(我正在编写一个为WPF公开自定义路由UI命令的类,但这并不重要).
我认为有两种方法可以做到:
class MyClass
{
public readonly object MyProperty = new object();
}
Run Code Online (Sandbox Code Playgroud)class MyClass
{
private readonly object my_property = new object();
public object MyProperty { get { return my_property; } }
}
Run Code Online (Sandbox Code Playgroud)由于所有这些FxCop错误都说我不应该有公共成员变量,所以第二个似乎是正确的方法.正确?
在这种情况下,get only属性和只读成员之间是否有任何区别?
我将不胜感激任何意见/建议等.
我知道从shell使用readonly模式打开文件vim -R,但是如何:tabe <filename>在readonly模式的单独tab()中从vim内部打开文件?
谢谢你的时间.
readonly ×10
c# ×3
properties ×3
.net ×1
const ×1
data-binding ×1
datacontext ×1
django ×1
django-admin ×1
docker ×1
immutability ×1
objective-c ×1
private ×1
python ×1
python-2.7 ×1
tabs ×1
vim ×1
wpf ×1
xaml ×1