我的计算机位于域(Active Directory)中,我需要动态获取域名.我在互联网上找到了以下代码:
SelectQuery query = new SelectQuery("Win32_ComputerSystem");
using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(query))
{
foreach (ManagementObject mo in searcher.Get())
{
if ((bool)mo["partofdomain"])
{
this.Domain = mo["domain"].ToString();
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
它完全按照我的意愿工作,并返回我想要的域名(当我以管理员身份登录时).如果用户不是域管理员,我有一个Access denied
例外.
有没有人知道如何使用非域管理员用户获取域名?
注意:我在Internet上找到了这个解决方案,System.Environment.UserDomainName;
但它只给了我一部分域名.
即我的域名是:something.domain.com
和UserDomainName
唯一的回报something
.
在UserControl
我想要将鼠标光标从箭头更改为手形图标.
我目前做的是这样的:
this.Cursor = Cursors.Hand;
Run Code Online (Sandbox Code Playgroud)
这非常好,它给我一个鼠标光标看起来像这样:
但是这里出现了我的问题......这显示了一只手指指针.
我需要的是一个"抓住"的手,更像是这个:
我该怎么做?,如何加载图标文件(.ico),光标文件(.cur)或图像文件(.png),并将其用作鼠标光标?
我在.NET中使用XmlReader来使用循环解析XML文件:
while (xml.Read()) {
switch xml.NodeType {
case XmlNodeType.Element:
//Do something
case XmlNodeType.Text:
//Do something
case XmlNodeType.EndElement:
//Do something
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道以下XML代码是否产生一些EndElement节点是否正常?请注意/>之前缺少的空格,但我不认为这是问题所在.
<date month="November" year="2001"/>
<zone name="xml"/>
Run Code Online (Sandbox Code Playgroud)
是否有不同的NodeType或属性来指示自闭元素?
我尝试使用WriteEntry
和类的WriteEvent
方法EventLog
.
EventLog.WriteEntry("Saravanan", "Application logs an entry",
EventLogEntryType.Information, 2, 3);
EventLog.WriteEvent("Saravanan", new EventInstance(2, 3),
"Application logs an event");
Run Code Online (Sandbox Code Playgroud)
两者都输出相同的结果.
这些方法的使用有什么不同吗?
如果只有微小的差异,为什么不通过任何一个WriteEvent()
或WriteEntry()
方法的重载来完成,而不是引入一个新的方法?
我需要在我的C#Windows应用程序中调用VBScript文件(.vbs文件扩展名).我怎样才能做到这一点?
在Visual Studio中有一个用于访问VBScript文件的加载项.但我需要在后面的代码中访问脚本.这该怎么做?
我正在使用C#2.0和Nunit Test.我有一些需要序列化的对象.这些对象非常复杂(在不同级别继承并包含许多对象,事件和委托).
如何创建单元测试以确保我的对象可以安全地序列化?
在c#.NET 2.0中有什么办法!结合多个谓词?
假设我有以下代码.
List<string> names = new List<string>();
names.Add("Jacob");
names.Add("Emma");
names.Add("Michael");
names.Add("Isabella");
names.Add("Ethan");
names.Add("Emily");
List<string> filteredNames = names.FindAll(StartsWithE);
static bool StartsWithE(string s)
{
if (s.StartsWith("E"))
{
return true;
}
else
{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
这给了我:
Emma
Ethan
Emily
Run Code Online (Sandbox Code Playgroud)
所以这是非常酷的东西,但我知道希望能够使用多个谓词进行过滤.
所以我希望能够说出这样的话:
List<string> filteredNames = names.FindAll(StartsWithE OR StartsWithI);
Run Code Online (Sandbox Code Playgroud)
为了得到:
Emma
Isabella
Ethan
Emily
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?目前我只是过滤完整列表两次,然后将结果合并.但不幸的是,这是非常无效的,更重要的是我失去了原始的排序顺序,这在我的情况下是不可接受的.
我还需要能够迭代任意数量的过滤器/谓词,因为可能会有很多.
再次,它需要是一个.NET 2.0解决方案,遗憾的是我不能使用更新版本的框架
非常感谢.
我试图创建一个ValueType.
我知道创建一个结构对我有帮助.
我还尝试从System.ValueType派生一个类型,它是一个抽象类.
但我得到一个编译器错误消息" ..无法从特殊类System.ValueType派生 "
当我看到ValueType的元数据时,它看起来是一个常规的抽象类.
是什么让它与众不同?
是C#compilor感觉它特别吗?
如果是这样,它是否建议作为编译器设计的规则?我的意思是它是公共语言规范的一部分吗?
类型"x"在未引用的程序集中定义.您必须添加对程序集"abc123"的引用.
我有一个.NET 2.0 Web应用程序,引用我的程序集'abc123'.该程序集存在于GAC中,我已经验证它是正确的(相同)版本.除了一个.aspx页面之外,其余的应用程序都没有问题.有问题的页面有一个转发器,它将用户控件显示为其"字段"之一.在将类型y的列表绑定到转发器时,我向用户控件传递类型x的列表(y的属性),如下所示:
<uc1:usercontrol id="ucusercontrol " runat="server" myPublicUserControlProperty='<%#Eval("CollectionOfX") %>'/>
Run Code Online (Sandbox Code Playgroud)
在用户控件的属性集上,我将类型x的列表绑定到用户控件中的gridview.
需要注意的一件奇怪的事情是,这个报告在我的开发PC上工作正常,但在我部署之后在任何服务器上都没有.我的电脑是Windows XP,IIS6,VS2005.服务器是Windows Server 2003,IIS6.
我希望我解释得那么好.提前感谢您提供的任何见解.