小编the*_*220的帖子

从MethodInfo创建委托

我目前正在尝试从中创建委托MethodInfo.我的总体目标是查看类中的方法并为标记有特定属性的方法创建委托.我正在尝试使用,CreateDelegate但我收到以下错误.

无法绑定到目标方法,因为其签名或安全透明性与委托类型的签名或安全透明性不兼容.

这是我的代码

public class TestClass
{
    public delegate void TestDelagate(string test);
    private List<TestDelagate> delagates = new List<TestDelagate>();

    public TestClass()
    {
        foreach (MethodInfo method in this.GetType().GetMethods())
        {
            if (TestAttribute.IsTest(method))
            {
                TestDelegate newDelegate = (TestDelagate)Delegate.CreateDelegate(typeof(TestDelagate), method);
                delegates.Add(newDelegate);
            }
        }
    }

    [Test]
    public void TestFunction(string test)
    {

    }
}

public class TestAttribute : Attribute
{
    public static bool IsTest(MemberInfo member)
    {
        bool isTestAttribute = false;

        foreach (object attribute in member.GetCustomAttributes(true))
        {
            if (attribute is TestAttribute)
                isTestAttribute = true; …
Run Code Online (Sandbox Code Playgroud)

c# attributes delegates methodinfo

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

C#运行时获取进程输出

无论如何,重定向生成的进程的标准输出并将其捕获为它的发生.我看到的所有内容在完成此过程后都会执行ReadToEnd.我希望能够在打印时获得输出.

编辑:

    private void ConvertToMPEG()
    {
        // Start the child process.
        Process p = new Process();
        // Redirect the output stream of the child process.
        p.StartInfo.UseShellExecute = false;
        p.StartInfo.RedirectStandardOutput = true;
        //Setup filename and arguments
        p.StartInfo.Arguments = String.Format("-y -i \"{0}\" -target ntsc-dvd -sameq -s 720x480 \"{1}\"", tempDir + "out.avi", tempDir + "out.mpg");
        p.StartInfo.FileName = "ffmpeg.exe";
        //Handle data received
        p.OutputDataReceived += new DataReceivedEventHandler(p_OutputDataReceived);
        p.Start();
    }

    void p_OutputDataReceived(object sender, DataReceivedEventArgs e)
    {
        Debug.WriteLine(e.Data);
    }
Run Code Online (Sandbox Code Playgroud)

c# process redirectstandardoutput

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

Azure COM对象

我试图将我在IIS服务器上托管的网站移动到Azure网站.我正在使用COM对象,但我不确定我是否可以注册这个?我发现一些帖子谈论上传dll并在启动时注册它,但文章似乎缺失了.这可能吗?

com azure web

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

在顶部绘制带有文本的视频

我正在开发一个应用程序,我有一个问题,我似乎无法找到解决方案.该应用程序是用vc ++编写的.我需要做的是显示一个YUV视频源,其上面有文字.

现在,通过使用GDI和DirectDraw叠加层上的视频在OnPaint方法中绘制文本,它可以正常工作.我需要摆脱叠加层,因为它会导致许多问题.它不适用于某些视频卡,vista,7等.

我无法找到一种以更兼容的方式完成同样事情的方法.我可以使用带有后台缓冲区的DirectDraw绘制视频,并将其复制到主缓冲区就好了.这里的问题是,由于视频刷新的次数,在GDI中绘制的文本会闪烁.我真的希望保持代码尽可能完整地绘制文本,因为它运作良好.

有没有办法将文本直接绘制到DirectDraw缓冲区或内存缓冲区或其他东西,然后将其blt到后台缓冲区?我应该一起看另一种方法吗?两个重要的操作系统是XP和7.如果有任何想法让我知道,我会测试它们.谢谢.

windows-xp directshow gdi directdraw windows-7

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

以管理员权限运行服务

我正在开发一个作为 Windows 服务运行的应用程序。我确实需要该服务具有管理员权限。我尝试使用 LocalSystem 用户,但它没有足够的权限。这可能吗?我尝试在 app.config 中设置 requireAdministrator 。当我这样做时,服务启动然后立即停止。我也尝试过使用其他管理员帐户,但得到了相同的结果。

service app-config administrator

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

结合时间范围

我目前正在开发一个C#程序,我需要结合一堆时间范围.对于每个范围,我都有开始和结束时间.我找到了一个例子,其中这是在Ruby中完成的,而不是C#.我基本上是在寻找时间范围联盟.我觉得使用linq可能有办法做到这一点,但我无法想出来.有任何想法吗?

所以举个例子

开始时间:1:30结束时间:2:00

开始时间:1:45结束时间:2:30

开始时间:3:00结束时间:5:00

开始时间:4:00结束时间:4:30

开始时间:4:45结束时间:5:30

这一系列时间会再次出现

开始时间:1:30结束时间:2:30

开始时间:3:00结束时间:5:30

c# union datetime

5
推荐指数
2
解决办法
2828
查看次数

Azure SQL 大删除

我目前正在使用 Azure 托管的 SQL 服务器实例处理应用程序。应用程序数据不占用大量物理空间,但有很多记录。有时我需要删除大量记录,例如可以说 500 万条记录。正如您可能猜到的那样,这需要大量的时间和资源。问题是我不需要很多资源来做其他事情。为了在 30 分钟或更长时间内不将 DTU 固定在 100%,我需要拥有更多正常使用下所需的资源。我不在乎删除在合理范围内需要多长时间。根据我的研究,我找不到限制使用的好方法。如果我能以某种方式只允许 50% 的使用率用于操作或类似的东西,那就太好了。也许我错过了一些可以提高删除效率的东西,但我不这么认为。它是一个非常简单的表,在我用来删除的列上有一个索引。看起来最大的主要组件是数据 IO。如果有人对我如何管理这个有任何好的想法,我们将不胜感激。

在此处输入图片说明

sql azure sql-delete azure-sql-database

5
推荐指数
2
解决办法
3019
查看次数

C++选择文件夹,包含文件

我目前正在研究Windows的qt应用程序.用户需要能够选择一个目录来加载所有文件.我遇到了与此相关的问题.这看起来很愚蠢,但我一直得到同样的反馈.最终用户对文件对话框感到困惑,因为它们导航到该文件夹​​,但它不显示任何文件.即使他们正在选择一个文件夹,它也会使他们感到困惑,因为他们看不到目录中的文件.

所以我决定深入研究并做一些研究.从我发现的情况来看,似乎基本上有两种选择.在IFileOpenDialogFOS_PICKFOLDERS,这是我目前通过Qt的使用的是什么QFileDialog.或者SHBrowseForFolder,它确实有效,但非常有限.

我错过了任何选择吗?似乎IFileOpenDialog显示文件而不允许用户选择它们将是理想的.有没有办法实现这个目标?我发现很多旧的信息说这是不可能的,但没有确定的更新近.

c++ windows winapi qt

5
推荐指数
1
解决办法
609
查看次数

Inno Setup 代码部分创建隐藏文件

我正在处理 Inno Setup 项目。SaveStringToFile该项目正在使用 部分中的函数写出一个文件[Code]。我想将此文件设置为隐藏系统文件,但我无法找到有关如何实现此操作的信息。有任何想法吗?

inno-setup pascalscript

4
推荐指数
1
解决办法
2375
查看次数

从UDP连接C#获取客户端IP

我目前有一个服务器应用程序正在侦听UDP数据包的端口.当一个发送到服务器时,它会正确接收并处理它.有什么方法可以得到数据包来自哪里的IP地址?

这是我创建套接字的方法

this.UDPListener = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

IPEndPoint endPoint = new IPEndPoint(IPAddress.Any, Port);
this.UDPListener.Bind(endPoint);

SocketAsyncEventArgs socketEventArgs = new SocketAsyncEventArgs(); 
socketEventArgs.SetBuffer(this.ReceiveBuffer, 0, this.ReceiveBuffer.Length);
socketEventArgs.Completed += new EventHandler<SocketAsyncEventArgs>(OnReceive);
if (!this.UDPListener.ReceiveAsync(socketEventArgs))
    ThreadPool.QueueUserWorkItem(new WaitCallback((Object o) => this.OnReceive(this, socketEventArgs)));
Run Code Online (Sandbox Code Playgroud)

当调用OnReceive时,没有任何内容包含消息来自的ip.我已经查看了SocketAsyncEventArgs,我看到的只是监听ip.

编辑:

这就是我最终做的事情.

this.UDPListener = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
this.UDPListener.Bind(new IPEndPoint(IPAddress.Any, Port));

EndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0);
this.UDPListener.BeginReceiveFrom(ReceiveBuffer, 0, ReceiveBuffer.Length, SocketFlags.None, ref remoteEndPoint, OnReceive, this.UDPListener);
Run Code Online (Sandbox Code Playgroud)

然后在OnReceive继承人如何获取数据和信息

//Get the received message.
Socket receiveSocket = (Socket)AsyncResult.AsyncState;
EndPoint clientEndPoint = new IPEndPoint(IPAddress.Any, 0);
int udpMessageLength = receiveSocket.EndReceiveFrom(AsyncResult, …
Run Code Online (Sandbox Code Playgroud)

c# sockets udp

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