当连接到当前用户(在我的情况下,支持网络的服务用户)没有权限的网络共享时,必须提供名称和密码.
我知道如何使用Win32函数(WNet*来自的家族mpr.dll),但是想用.Net(2.0)功能.
有哪些选择?
也许更多信息有助于:
在代码审查中,我偶然发现了这个(简化的)代码片段以取消注册事件处理程序:
 Fire -= new MyDelegate(OnFire);
我认为这不会取消注册事件处理程序,因为它创建了一个之前从未注册过的新委托.但是搜索MSDN我发现了几个使用这个习惯用法的代码示例.
所以我开始了一个实验:
internal class Program
{
    public delegate void MyDelegate(string msg);
    public static event MyDelegate Fire;
    private static void Main(string[] args)
    {
        Fire += new MyDelegate(OnFire);
        Fire += new MyDelegate(OnFire);
        Fire("Hello 1");
        Fire -= new MyDelegate(OnFire);
        Fire("Hello 2");
        Fire -= new MyDelegate(OnFire);
        Fire("Hello 3");
    }
    private static void OnFire(string msg)
    {
        Console.WriteLine("OnFire: {0}", msg);
    }
}
令我惊讶的是,发生了以下情况:
Fire("Hello 1"); 按预期产生了两条消息.Fire("Hello 2");制作了一条消息!new代表工作!Fire("Hello 3");扔了一个NullReferenceException.Fire为null …将项目从.NET 1.1移动到.NET 2.0后,MsBuild会为某些COM对象发出大量警告.
测试的示例代码(实际代码无关紧要,仅用于创建警告):
using System;
using System.DirectoryServices;
using ActiveDs;
namespace Test
{
    public class Class1
    {
        public static void Main(string[] args)
        {
            string adsPath = String.Format("WinNT://{0}/{1}", args[0], args[1]);
            DirectoryEntry localuser = new DirectoryEntry(adsPath);
            IADsUser pUser = (IADsUser) localuser.NativeObject;
            Console.WriteLine("User = {0}", pUser.ADsPath);
        }
    }
}
警告消息看起来像
C:\ WINDOWS\Microsoft.NET\Framework\v2.0.50727\Microsoft.Common.targets:警告:运行时封送程序无法对"ITypeLib.RemoteGetLibAttr"的至少一个参数进行封送处理.因此,这些参数将作为指针传递,并且可能需要操作不安全的代码.
观察:
<Reference> .csproj文件中的条目包含属性 WrapperTool = "tlbimp"知道怎么摆脱警告吗?
这个问题的灵感来自于Linux是否为应用程序提供了单调递增的时钟.
也许我应该更精确:我正在寻找一个严格增加的时钟功能,因此永远不会返回相同的值,独立于两个呼叫相互跟随的速度.
我想对人类进行比较的项目进行排序:
对于这些任务,比较次数是性能的限制因素.
我尝试为我收到的XML文档定义一个模式.
文件看起来像:
<root>
    <items>
        <group name="G-1">
            <item name="I-1"/>
            <item name="I-2"/>
            <item name="I-3"/>
            <item name="I-4"/>
        </group>
    </items>
    <data>
        <group name="G-1" place="here">
            <customer name="C-1">
                <item name="I-1" count="3"/>
                <item name="I-2" count="4"/>
            </customer>
            <customer name="C-2">
                <item name="I-3" count="7"/>
            </customer>
        </group>
    </data>
</root>
我试过.NET 2.0中的XmlSpy和xsd.exe.两者都创建了允许在<group>任意数量<item>和<customer>元素下面的模式定义.但是我正在寻找应限制<group>以下<items>,以<item>元素,<group>下面<data>对<customer>元素.
这是xml架构根本不具备的吗?
我正在尝试准备一个混合英语和阿拉伯语内容的演示html页面.基本上它包含一个小表,左边是英文短语,右边是阿拉伯语翻译.
因为我不懂阿拉伯语,所以我从Unicode参考中获取了阿拉伯字母的前三个字符.
第一次尝试,使用字符实体(ابت):它工作(显示:ابت).
我试图直接在文档中输入阿拉伯字符.为了实现这一点,我将文档保存为UTF-8并添加了内容类型的元标记.
在Internet Explorer(7)中显示此文档显示垃圾:ابت
手动切换IE以使用UTF-8(菜单"视图 - >视图 - > Unicode")使IE显示字符correclty.但是一旦文档重新加载,垃圾就会再次出现.
<html>
  <head>
  <meta content="content-type" content="text/html; charset=utf-8">
  </head>
  <body>
    <table width="95%" border="1">
      <colgroup><col width="50%" /><col width="50%" /></colgroup>
      <tbody>
        <tr>
          <th>English</th><th>Arabic</th>
        </tr>
        <tr>
          <td>Test phrase</td>
          <td dir="rtl">? ? ?</td>
        </tr>
      </tbody>
    </table>
  </body>
</html>
使用Firefox测试显示正确的阿拉伯字母.(但是对"rtl"方向的解释是不同的:IE显示文本右对齐,Firefox左对齐.)
任何提示如何说服IE使用文档中给出的编码?
这是本地存储的html文件的效果吗?编辑此StackOverflow条目时,我会观察
unicode internet-explorer utf-8 character-encoding internet-explorer-7