小编Alf*_*ers的帖子

以编程方式将.NET程序集安装到GAC中的方法

我需要创建一个小应用程序或脚本来将.NET程序集安装到GAC中.我读过有几种方法可以做到这一点,包括:

  • 运用 gacutil.exe
  • 执行以下代码行:

    new System.EnterpriseServices.Internal.Publish().GACInstall("Foo.dll");

但是,如果我刚刚在机器上创建了相应的目录并将程序集复制到该目录中会发生什么?GAC目录的结构如下: C:\Windows\assembly\GAC_MSIL\Foo\<version#>__<public token>\Foo.dll

除了创建文件夹结构并将组件放入其中之外,上述两种方法是否有任何特殊之处?

.net install gac global-assembly-cache

10
推荐指数
2
解决办法
6959
查看次数

C#Networkstream.read()

read(缓冲区,偏移量,长度)如何实际工作,如果我将长度读取为32,这是否意味着它将保持阻塞直到它收到32个字节?

我知道它会返回和异常,或者在套接字异常或连接关闭时分别为0.

如果发送方只发送31个字节,会读取继续阻塞吗?如果这是真的,是否意味着read总是返回等于传递给它的长度的整数?以及如果在一定时间后没有剩下的1个字节,我如何控制超时.

重要但尚未回答

相反,如果发送方发送32字节,那么确保读取将阻塞直到所有32个接收到,或者它可以在不读取所有32个字节的情况下出现.

.net c# sockets

9
推荐指数
1
解决办法
1万
查看次数

.NET BindingSource过滤器语法参考

您可以使用BindingSource的Filter属性来执行类似过滤的SQL.例如:

bindingSource.Filter= "Activated = 1"
Run Code Online (Sandbox Code Playgroud)

是否有类似文档的确切语法?

我想检查字段是否不是DBNull,所以我尝试了"Field!= NULL"但它给出了语法错误.

.net c# filter bindingsource

9
推荐指数
1
解决办法
2万
查看次数

Windows窗体中带标签控件的换行问题

假设我在Winforms中有一个标签控件,我想做一些事情:

1)一个
2)两个

我怎么做到的?如果我在字符串中添加"\n",它似乎不起作用.标签控制本质上是单行吗?

winforms

9
推荐指数
1
解决办法
4694
查看次数

如何使用C#为sql server表添加列?

如何使用C#为sql server表添加列?

例如,我想在C#代码中执行以下sql:

alter table [Product] add 
[ProductId] int default 0 NOT NULL
Run Code Online (Sandbox Code Playgroud)

.net c# sql-server

8
推荐指数
1
解决办法
3万
查看次数

如何访问TabControl选项卡内的控件?

这就是我到目前为止所做的一切.

tabControl1.TabPages[0].???
Run Code Online (Sandbox Code Playgroud)

我的TabControl的TabPage1里面有一个PictureBox.

如何使用代码而不是属性窗格更改图像位置?

.net c# tabcontrol winforms

7
推荐指数
2
解决办法
2万
查看次数

"新建"接口

几天前,我看到CoClassAttribute以我以前没有想到的方式使用.


[ComImport, CoClass(typeof(Foo)), Guid("787C1303-AE31-47a2-8E89-07C7257B1C43")]
interface IFoo {
    void Bar();
}

class Foo : IFoo {
    public void Bar() {
        Console.WriteLine("Oh retado!");
    }
}

Run Code Online (Sandbox Code Playgroud)

用作:


class CoClassDemo {
    public static void Show() {
        var a = new IFoo();
        a.Bar();
    }
}
Run Code Online (Sandbox Code Playgroud)

这应该不会让我感到惊讶,因为自.NET Framework早期以来,COM Interop正是这样做的.在.NET Reflector中挖掘COM Interop代码时,我根本没有那么多关注.


method public hidebysig static void Show() cil managed
{
    .maxstack 1
    .locals init (
        [0] class ConsoleApplication1.IFoo a)
    L_0000: nop 
    L_0001: newobj instance void ConsoleApplication1.Foo::.ctor()
    L_0006: stloc.0 
    L_0007: ldloc.0 
    L_0008: callvirt instance void ConsoleApplication1.IFoo::Bar()
    L_000d: …
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection mocking

7
推荐指数
1
解决办法
1674
查看次数

将ASP.NET Intranet应用程序与Outlook日历集成的技术

我不能再忽视用户的操作了.他们想要一个任务调度系统,在某些时候我必须提供.我正在考虑制作自己的(不能很难),但是用户将拥有两个并排的任务管理系统,因为他们已经使用Outlook进行相同的操作.

在Outlook日历/任务集成方面,我发现了两种可能的方法:

1)使用JavaScript和自动化

我似乎记得在JavaScript中进行自动化是可能的.

优点:

  • 我以前做过自动化.

缺点:

  • 自动化太可怕了!
  • 一些持久性(Outlook实体)是客户端代码的责任,其余的是服务器端代码的责任.这感觉太可怕了.

  • IT部门可能存在的安全问题/ 阻塞.

2)使用一些.NET API直接与Exchange Server交互

Intranet使用单点登录,因此希望这会使安全问题更容易.

优点:

  • 所有持久性代码都是服务器端的.

缺点:

  • 我甚至不知道存在这样的API.

和往常一样,我喜欢站在巨人的肩膀上.任何曾经走过这条道路的人都可以给我一些指导吗?

.net asp.net outlook exchange-server ews-managed-api

7
推荐指数
1
解决办法
6361
查看次数

使用.Split删除空条目

我试图在每个空格""拆分,但它不会让我删除空条目然后找到长度,但它被视为语法错误.

我的代码:

TextBox1.Text.Split(" ", StringSplitOptions.RemoveEmptyEntries).Length
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

vb.net split

6
推荐指数
2
解决办法
2万
查看次数

为什么在Visual Basic 6.0中没有将TypeLib枚举公开为枚举?

我有一个引用COMSVCSLib的VB6项目,其中一个方法调用COMSVCSLib的SharedPropertyGroupManager.CreatePropertyGroup传递LockMethodProcess作为参数.

清理VB6代码:

Dim groupName       As String
Dim spmMgr          As COMSVCSLib.SharedPropertyGroupManager
Dim spmGroup        As COMSVCSLib.SharedPropertyGroup

Dim bGroupExists    As Boolean

Set spmMgr = New COMSVCSLib.SharedPropertyGroupManager

With spmMgr
    Set spmGroup = .CreatePropertyGroup(groupName, LockMethod, Process, bGroupExists)

End With
Run Code Online (Sandbox Code Playgroud)

几年没有使用VB6,起初我认为LockMethod和Process是在项目中的其他地方定义的变量或常量.

在对对象浏览器进行了一些研究后,我发现它们都在COMSVCSLib中作为常量公开.

对象浏览器

但是在OLE/COM对象查看器中查看它们的定义,它们似乎被定义为枚举的值:

typedef enum {
    LockSetGet = 0,
    LockMethod = 1
} __MIDL___MIDL_itf_autosvcs_0469_0002;
Run Code Online (Sandbox Code Playgroud)

为什么COMSVCSLib中的IDL/TypeLib枚举不作为枚举公开给Visual Basic 6.0?

vb6 enums constants typelib

6
推荐指数
1
解决办法
2314
查看次数