在构造函数之外的对象初始化是否打破封装?
鉴于:
class MyClass
{
public string _aString;
}
Run Code Online (Sandbox Code Playgroud)
_aString成员不应该是私有的,并且通过调用构造函数来实例化(此处省略了构造函数):
MyClass test = new MyClass("test");
Run Code Online (Sandbox Code Playgroud)
而不是对象初始化的替代方法:
MyClass test = new MyClass { _aString = "Test" };
Run Code Online (Sandbox Code Playgroud) 我正在尝试获取目录服务对象的"uSNChanged"值的Int64值.不幸的是,它总是以某种COM对象的形式回归.我尝试使用转换为Int64,调用Int64.Parse(),并调用Convert.ToInt64().这些都不起作用.
对于给定的DirectoryEntry对象,此代码将显示以下属性:
private static void DisplaySelectedProperties(DirectoryEntry objADObject)
{
try
{
string[] properties = new string[] {
"displayName",
"whenCreated",
"whenChanged",
"uSNCreated",
"uSNChanged",
};
Console.WriteLine(String.Format("Displaying selected properties of {0}", objADObject.Path));
foreach (string strAttrName in properties)
{
foreach (var objAttrValue in objADObject.Properties[strAttrName])
{
string strAttrValue = objAttrValue.ToString();
Console.WriteLine(String.Format(" {0, -22} : {1}", strAttrName, strAttrValue));
}
}
Console.WriteLine();
}
catch (Exception ex)
{
throw new ApplicationException(string.Format("Fatal error accessing: {0} - {1}", objADObject.Path, ex.Message), ex);
}
}
Run Code Online (Sandbox Code Playgroud)
这是输出:
Displaying selected properties of LDAP://server/o=org/cn=obj displayName : …
我目前正在开发一个 Web 应用程序,其中涉及安装驱动器和提取 tar.gz 文件,所有这些都是用 Java 编写的。由于该应用程序在 Linux 环境中运行,我想我应该尝试使用“mount”和“tar”等 unix 命令。
Runtime runtime = Runtime.getRuntime();
Process proc;
String mountCommand = "mount -t cifs -o username=...";
String extractCommand = "tar xzf ..."
proc = runtime.exec(mountCommand);
proc.waitFor();
proc = runtime.exec(extractCommand);
proc.waitFor();
Run Code Online (Sandbox Code Playgroud)
在终端中运行 mount 命令和 extract 命令工作正常,但在 java 中首次运行时失败。第二个 proc.waitFor() 返回退出代码 2。但是,在第一次尝试失败后运行此代码可以正常工作。我有一种感觉,问题是 waitFor() 没有等到挂载命令完全完成。我的代码中是否遗漏了任何重要的内容?
另外,我宁愿用 Java 来完成这一切,但我很难弄清楚如何解压文件,所以我采用了这种方法。(哦,如果有人能告诉我如何做到这一点,我会很高兴)。任何建议将不胜感激!
我想使用Entity Framework将记录添加到SQL Server表中.我的表的实体具有外键,因此具有这些字段的导航属性.添加新记录/实体时,如何填充外键字段,因为它们不显示为实体的属性?
我正在开发一个DHTML/Javascript应用程序,它依赖于一些高级功能(DOM操作,AJAX,Flash通信等).我非常关心功能 - 如果出现问题,即使在部署应用程序之后,我想确保我知道为什么以及如何解决它们 - 而且,我想确保用户能够继续使用应用程序,如果异常严重,可能会降低功能.
我目前有一个日志记录和异常处理系统,函数可以生成日志,如果发现异常,所有日志都会通过电子邮件发送给我.该系统运行良好,但我想使其更健壮.我正在寻找建议.
我的一个想法是将每个javascript函数的主体包装在try/catch块中,并在捕获异常时记录函数的名称,然后将错误抛给全局处理程序.但是,这是为了追踪异常发生的功能而进行的大量代码.
任何使运行时异常更容易查找和重现的想法?
也许我今天只是脑筋不好,但我突然无法弄清楚如何阅读带有ruby的net/imap库的电子邮件.我已经好几个小时了.我在google中输入了几个"ruby imap read body"的变种,并探索了很多网站.所有这些都有关于如何提取附件,同步电子邮件服务器,使用gmail等的示例......有些(如chilkat)实际上是共享软件库,可以为您执行此操作.我查看了net/imap文档,虽然有几个例子可以做所有事情但是阅读正文.
我曾经使用net/imap,但我只需要将收件箱中的附件下拉到目录.我已经在#ruby和#rubyonrails中要求无济于事 - 没有人能想出来.
imap=Net::IMAP.new('mail.xks.com') #of course these are not real
imap.login('web1_xk3','pxx2006')
imap.select('INBOX')
imap.search(["SENTSINCE",(Time.now-1.day).strftime("%d-%b-%Y")]).each do |msgid|
body = imap.fetch(msgid,"BODY")[0].attr["BODY"]
##insert code for getting the text from the body here
##body.class is BodyTypeText
end
PS虽然我确实在代码中引用了活动支持,但这是sans-rails,这意味着没有动作邮件
NSString *latitude = [[NSString alloc] initWithFormat:@"%g°", coordinate.latitude];
NSString *longitude = [[NSString alloc] initWithFormat:@"%g°", coordinate.longitude];
self.pointLabel.text = [latitude stringByAppendingString:@", "];
self.pointLabel.text = [self.pointLabel.text stringByAppendingString:longitude];
Run Code Online (Sandbox Code Playgroud) 我有一个应用程序从Active Directory中的OU中提取用户信息.它所采用的参数是搜索的基础和过滤字符串.
我有一个OU我想从中提取信息,但是我想避免使用子OU:
用户来自 OU=People,DC=mydomain,DC=com
用户来自 OU=Evil,OU=People,DC=mydomain,DC=com
我知道这可以通过重写执行导入以停止搜索子OU的应用程序来完成,但有没有办法在搜索上使用LDAP过滤器?像(DistinguishedName !contains "Evil")或类似的东西,我会根据用户的路径排除用户,而不是过滤用户的属性.
c# ×3
.net ×1
attributes ×1
cer ×1
cocoa-touch ×1
concurrency ×1
constructor ×1
exception ×1
imap ×1
int64 ×1
iphone ×1
java ×1
javascript ×1
ldap ×1
mount ×1
object ×1
objective-c ×1
process ×1
ruby ×1
runtime ×1
tar ×1