如何从Active Directory DirectoryEntry(SchemaClassName ="user")对象获取Windows用户和域?
用户名在sAMAccountName属性中,但在哪里可以查找域名?
(我不能假设一个固定的域名,因为用户来自不同的子域名.)
在我解释我想做什么之前,如果你看下面的代码,你会明白它应该做什么吗?(更新 - 见下文)
Console.WriteLine(
Coalesce.UntilNull(getSomeFoo(), f => f.Value) ?? "default value");
Run Code Online (Sandbox Code Playgroud)
C#已经有一个null-coalescing运算符,它在简单对象上运行得很好,但如果你需要访问该对象的一个成员则无效.
例如
Console.WriteLine(getSomeString()??"default");
Run Code Online (Sandbox Code Playgroud)
效果很好,但它不会帮助你:
public class Foo
{
public Foo(string value) { Value=value; }
public string Value { get; private set; }
}
// this will obviously fail if null was returned
Console.WriteLine(getSomeFoo().Value??"default");
// this was the intention
Foo foo=getSomeFoo();
Console.WriteLine(foo!=null?foo.Value:"default");
Run Code Online (Sandbox Code Playgroud)
由于这是我经常遇到的事情,我想到使用扩展方法(旧版本):
public static class Extension
{
public static TResult Coalesce<T, TResult>(this T obj, Func<T, TResult> func, TResult defaultValue)
{
if (obj!=null) return func(obj);
else return …Run Code Online (Sandbox Code Playgroud) 作为一名开发人员,我真的不喜欢编写文档,但是当我不得不尽可能地让这个过程变得无痛时.
Word的问题在于它经常妨碍我.我更担心布局而不是实际内容......这就是我想摆脱Word的原因.
理想情况下,我想编写我的内容,然后将其"编译"成文档.
我听说过LaTeX,但我没有任何经验.这是否适合这项工作?我应该使用什么编辑器(Windows)?从LyX开始是一个好主意吗?
编辑:我不是要求记录代码(我使用Sandcastle).
我们现在已切换到GFM(GitHub Flavored Markdown).
documentation markdown latex ms-word github-flavored-markdown
我希望能够在其仿真器模式下在iPad 3上测试iPhone 5(4")应用程序.
为了表明它是一个iPhone 5应用程序,我添加了Default-568h@2x.png启动图像,并在模拟器中按预期工作.
当我尝试在iPad上运行它时,只有3.5英寸版本在其iPhone模拟器中显示.
iPad是否还不支持4"模式,还是需要启用其他功能?(iOS 6 GM种子)
默认情况下,Visual Studio会显示intellisense中类型的所有成员及其扩展方法.
有时我想隐藏扩展方法,以便更容易找到我实际需要的成员(特别是在使用Linq时).
是否有快捷方式或其他方式只显示intellisense中类型的成员?
我知道如何通过应用程序池设置在完整的IIS中切换到"经典模式"(从"集成模式").但我无法在当前的IIS Developer Express测试版中找到如何做到这一点.
MS Developer Express FAQ说它可以完成,但不是如何完成.据我所知,它不在WebMatrix GUI中.也许自定义Developer Express项目文件,但我根本没有看到任何文档.
仅供参考,有一个设置区域,您可以在其中设置SSL,CLR版本(在本例中为2.0),这是我认为管道模式(经典/集成)的地方,但它不存在.
DateTime d1=new DateTime(2015, 1, 1, 0, 0, 0, DateTimeKind.Utc);
DateTime d2=new DateTime(2015, 1, 1, 0, 0, 0, DateTimeKind.Local);
Console.WriteLine(d1==d2); // prints true
Console.WriteLine(d1<d2); // prints false
Console.WriteLine(d1.CompareTo(d2)); // prints 0
Console.WriteLine(d1.ToUniversalTime()==d2.ToUniversalTime()); // prints false
Run Code Online (Sandbox Code Playgroud)
对我来说这看起来像个错误,如果没有让我感到惊讶.
我是否必须为每次比较调用ToUniversalTime(),还是有更好的选择?
你如何避免因忘记调用ToUniversalTime()或因DateTimeKind.Unspecified而得到错误结果等陷阱?
在Visual Studio中,我可以使用Control+]快捷方式从/跳到开/关大括号.
是否有一个快捷方式允许我一次删除两个大括号(可能有一个宏/扩展名)?
例如
foo = ( 1 + bar() + 2 );
Run Code Online (Sandbox Code Playgroud)
当我在第一个开口支架上时,我想删除它和它的匹配支架
foo = 1 + bar() + 2;
Run Code Online (Sandbox Code Playgroud) 当表达式的某些部分作为参数传递时,如何构建表达式树?
例如,如果我想创建这样的表达式树,该怎么办:
IQueryable<LxUser> test1(IQueryable<LxUser> query, string foo, string bar)
{
query=query.Where(x => x.Foo.StartsWith(foo));
return query.Where(x => x.Bar.StartsWith(bar));
}
Run Code Online (Sandbox Code Playgroud)
但通过间接创造它们:
IQueryable<LxUser> test2(IQueryable<LxUser> query, string foo, string bar)
{
query=testAdd(query, x => x.Foo, foo);
return testAdd(query, x => x.Bar, bar);
}
IQueryable<T> testAdd<T>(IQueryable<T> query,
Expression<Func<T, string>> select, string find)
{
// how can I combine the select expression with StartsWith?
return query.Where(x => select(x) .. y => y.StartsWith(find));
}
Run Code Online (Sandbox Code Playgroud)
结果:
虽然样本没有多大意义(抱歉,但我试图保持简单),这是结果(感谢Quartermeister).
它可以与Linq-to-Sql一起使用,以搜索以findText开头或等于的字符串.
public static IQueryable<T> WhereLikeOrExact<T>(IQueryable<T> query,
Expression<Func<T, string>> selectField, string findText) …Run Code Online (Sandbox Code Playgroud) 当我按Ctrl + F时,是否可以使VS 2012查找对话框始终使用“ 当前文档”并重置大小写和整个单词?目前,它记住了我的最后选择,而我经常忘记关闭它们。
而且有时它会自己切换到“ 所有打开的文档”,这完全让我失望。我还没有弄清楚为什么或何时发生这种情况。
我已经搜索了注册表项和扩展名,但到目前为止,没有发现有用的信息。