Tag: .net

已经与其基础RCW分离的COM对象无法使用 – 为什么会发生?

我有时会遇到以下exception:无法使用已与其基础RCW分离的COM对象 示例代码: using (AdOrganizationalUnit organizationalUnit = new AdOrganizationalUnit(ADHelper.GetDirectoryEntry(ouAdDn))) { using (AdUser user = organizationalUnit.AddUser(commonName)) { //set some properties user.Properties[key].Add(value); user.CommitChanges(); user.SetPassword(password); //it is set using Invoke //must be set after creating user user.Properties[“UserAccountControl”].Value = 512; user.CommitChanges(); } } AdUser看起来像这样: public class AdUser : DirectoryEntry { public AdUser(DirectoryEntry entry) : base(entry.NativeObject) { } public bool SetPassword(string […]

使用C#代码将excel文件保存到csv文件

我想打开一个excel文件并将其另存为csv文件。 谷歌搜索没有幸运。 我需要C代码才能做到这一点。 谢谢你的帮助。

我可以像在Autofac中那样在Unity中的模块中注册我的类型吗?

我对Autofac非常熟悉,我非常喜欢Autofac的一个function是注册模块。 有谁知道我怎么能用Unity做到这一点? 如果有的话,我很难找到在Google中使用哪些术语来提出等效的统一。 public class Global : HttpApplication, IContainerProviderAccessor { private static IContainerProvider _containerProvider; protected void Application_Start(object sender, EventArgs e) { var builder = new ContainerBuilder(); builder.RegisterModule(new MyWebModule()); _containerProvider = new ContainerProvider(builder.Build()); } […] public IContainerProvider ContainerProvider { get { return _containerProvider; } } } public class MyWebModule: Module { protected override void Load(ContainerBuilder builder) […]

从表达式树中提取方法名称?

我正在尝试实现以下模式函数: MethodInfo GetMethod( Expression<Func<TTarget, EventHandler>> method) 如果需要,我可以提供TTarget的实例 所需的用法是: public static void Main(string[] args) { var methodInfo = GetMethod(t => t.Method); Console.WriteLine(“Hello, world!”); } private void Method(object sender, EventArgs e) { } 这是我到目前为止所尝试的内容: private static MethodInfo GetMethod(TTarget target, Expression<Func<TTarget, EventHandler>> method) { var lambda = method as LambdaExpression; var body = lambda.Body as UnaryExpression; var call […]

如何从c#中读取Foxpro 8.0数据库?

我需要将表从foxpro 8.0导入到sql server。 如何从C#中的foxpro目录/文件中读取表和模式,以便在SQL Server中创建表并复制数据?

继续运行特定数量的任务

我一直试图这样做: 创建’N’任务以执行并持续运行此数量的一段时间,在这种情况下,一个任务完成,然后我应该开始一个新任务以保持相同数量的任务。 我不知道是否可以使用TaskScheduler处理这个问题,或者我必须创建一个自定义的TaskScheduler。 我认为可行的另一个选择是,当任务完成时使用TPL DataFlow Producer-Consumer,然后taskscheduler接受生产者生成的新任务。 问题是:当一个任务完成以保持相同数量的任务时,我如何创建一个新任务?

扩展GDI +中支持的图像格式列表

引用System.Drawing.Imaging命名空间的文档 Encoder类使用户能够扩展GDI +以支持任何图像格式。 然而,我找不到任何文档,示例或其他任何解释我如何实现自己的自定义文件格式的内容 – 大多数搜索都会返回有关传递EncoderParameters的大量信息,但是没有实现我们自己的编码器的信息? 理想情况下,我希望能够在C#中实现这一点,但如果需要,我准备将我的ATL清除掉:) 有没有人遇到任何文档或能够提供有关如何处理此问题的任何指示? 更新: 我应该提到我迄今为止尝试过的事情,但无济于事: 寻找在ImageCodecInfo类中返回的GUID以查看它是否是一个普通的COM接口(但它似乎不是),目的是查看已实现的接口,或者查看它是否只是一个注册表项。 步入Image.FromFile方法,发现它只是gdiplus.dll的包装器 大量的Google搜索,似乎提供了大量使用现有的搜索,并指定了您自己的ImageEncoderParamerters; 还有一些人通过其他方式实现自己的 编解码器 。 甚至在新闻中询问://microsoft.public.win32.programmer.gdi

静态类别 具有私有构造函数的类以及所有静态属性和方法?

当我创建实用程序类时,我通常会创建一个具有私有构造函数的类,并将其所有方法和属性公开为static。 对此最好的方法是什么? 我的方式或创建静态类有什么区别?

如何检测List 是否已更改? 最后添加的项目是什么?

我有一个计时器刻度事件: private void timer2_Tick(object sender, EventArgs e) { combindedString = string.Join(Environment.NewLine, ListsExtractions.myList); richTextBox1.SelectAll(); richTextBox1.SelectionAlignment = HorizontalAlignment.Right; richTextBox1.Text = combindedString; } 计时器设置为50000,时间一直在反复运行。 现在,当我运行我的程序时, List myList有3个项目: Index 0: Hello world Index 1: 24/7/2014 21:00 Index 2: http://test.com 50秒后有两个选项:列表未更改或更改/更长。 如果没有改变什么都不做,但如果改变了最新添加的项目。 例如,如果列表现在已更改为此… Index 0: This is the latest item added in index 0 Index 1: 24/7/2014 22:00 Index 2: […]

如何隐藏控制台窗口?

问题:我有一个不应该看到的控制台程序。 (它重置IIS并删除临时文件。) 现在我可以设法在开始后立即隐藏窗口,如下所示: static void Main(string[] args) { var currentProcess = System.Diagnostics.Process.GetCurrentProcess(); Console.WriteLine(currentProcess.MainWindowTitle); IntPtr hWnd = currentProcess.MainWindowHandle;//FindWindow(null, “Your console windows caption”); //put your console window caption here if (hWnd != IntPtr.Zero) { //Hide the window ShowWindow(hWnd, 0); // 0 = SW_HIDE } 问题是这显示了一秒钟的窗口。 是否有控制台程序的构造函数,我可以在显示之前隐藏窗口? 第二个: 我用 [System.Runtime.InteropServices.DllImport(“user32.dll”)] static extern bool ShowWindow(IntPtr hWnd, int nCmdShow); 而且我不喜欢它里面的32。 […]