小编Ste*_*ger的帖子

如何将 python 绑定添加到 C#?

当你想从 python 调用 C 时,你写一个这样的模块:

http://docs.python.org/extending/extending.html

现在,我有一个问题:

我想用 C# 编写一个在 Python 中使用的模块。

如何让 C# 与原生 Python 交互?
(注意:我对 Python.NET 或 IronPython 不感兴趣)。

.net c# python python-bindings

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

DropNet DropBox登录,如何在控制台应用程序中以编程方式执行?

题:

我在这里使用DropBox csharp API:https:
//github.com/dkarzon/DropNet

从单元测试,以及这里唯一的工作样本 https://github.com/dkarzon/DropNet/blob/master/DropNet.Samples/DropNet.Samples.Web/Default.aspx.cs

我认为它的工作原理如下:

DropNet.DropNetClient client = new DropNet.DropNetClient(strApiKey, strAppSecret);

DropNet.Models.UserLogin login = client.GetToken();
client.UserLogin = login;

var accountInfo = client.AccountInfo();
str = accountInfo.quota_info.quota.ToString();
Run Code Online (Sandbox Code Playgroud)

探测器是,它会在accountinfo上引发异常.(System.Net.HttpStatusCode.Unauthorized)一切正常,我得到登录(usertoken&usersecret).

我认为我的问题是示例应用程序的这一部分:

var url = _client.BuildAuthorizeUrl(Request.Url.ToString() + "?dropboxcallback=1");
Response.Redirect(url);
Run Code Online (Sandbox Code Playgroud)

它重定向到Dropbox进行登录...我没有Web应用程序,所以我没有URL ...

我所拥有的是一个控制台应用程序,应该每天晚上自动备份我的数据库作为服务,对于它来说当然非常糟糕,需要webbrowser和用户必须输入电子邮件/用户名+密码.

如何通过直接提供硬编码的用户名和密码来登录?

如果我使用示例应用程序,那么它可以工作,但这需要在Web上输入用户名和密码,这对于控制台应用程序来说是很大的时间......

.net c# dropbox dropbox-api dropnet

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

如何在 .NET Core 中卸载程序集/使其可收集?

如何在 .NET Core 中卸载程序集?

注意:
.NET Core 不支持 AppDomain。

背景:
我必须动态评估用户生成的 VisualBasic 表达式。
为此,我使用 Roslyn 动态编译表达式。
我从 Roslyn 编译器生成的字节数组加载生成的程序集。
然后我创建一个实现抽象类的实例(因此我不必使用反射)。然后我调用抽象类的方法EvaluateExpression。
完成此操作后,我想卸载已加载的程序集(否则,我将享受内存泄漏的乐趣)。
因此,我在计算表达式后立即卸载程序集:

Parameters.AbstractEvaluator x = RoslynExpressionEvaluator.CreateEvaluator(expression, report.Code);
object value = x.EvaluateExpression();
x.LoadContext.Unload();
Run Code Online (Sandbox Code Playgroud)

(loadContext在生成时保存在抽象类中)

到目前为止一切正常,但是在x.LoadContext.Unload();,我得到

System.InvalidOperationException:“无法卸载不可收集的 AssemblyLoadContext。”

有可能解决这个问题吗?
如何使组件成为收藏品?
另外,我注意到我可以加载具有相同类名的程序集(如您所见,代码中没有命名空间)
这在多线程环境(又名网络)中表现如何?
我可以无限地加载动态生成的类的不同版本,直到机器用完 RAM 而没有出现故障吗?
或者为什么当加载同一个类两次时这会起作用?

using Microsoft.CodeAnalysis.Operations;

namespace ReportTester
{


    public static class RoslynExpressionEvaluator
    {
        // a utility method that creates Roslyn compilation
        // for the passed code. 
        // The compilation references the collection of 
        // passed "references" arguments …
Run Code Online (Sandbox Code Playgroud)

c# code-generation expression-evaluation assembly-loading roslyn

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

IHostLifetime 是否有 MacOS(启动)实现?

Microsoft 已经定义了IHostLifetimeWorkerServices 在不同平台上作为服务运行的接口。(您可以dotnet new worker在控制台中创建一个 Worker Service 项目)。

如果你想运行它们的系统服务,您可以使用微软的扩展systemd和Windows服务(见的NuGet Windows服务Systemd)。

是否已经有针对 MacOS 的实现(例如 launchd),或者如果我也想通过我的服务支持 MacOS,我是否需要为自己实现?


另见https://github.com/dotnet/core/blob/58b0c128d2672bada008d6e2b9e5b29ae70c2c4c/release-notes/3.0/api-diff/Asp.Net/3.0.0_Microsoft.Extensions.Hosting.Systemd.md

https://levelup.gitconnected.com/net-core-worker-service-as-windows-service-or-linux-daemons-a9579a540b77

c# windows-services launchd systemd asp.net-core

5
推荐指数
0
解决办法
264
查看次数

我应该使用跨平台的GUI工具包还是依赖本地工具包?

在我作为程序员的工作中,我将编写一个用C++编写的程序,用于将音频文件转换为各种格式.可能,这将涉及构建一个简单的GUI.

使用Cocoa和WinForms而不是像Qt或GTK这样的跨平台工具包为Mac和Windows构建单独的GUI是否会很费力?
(无论如何,我将不得不维护一个单独的Windows版本和Mac版本)
GUI可能非常简单,只需要非常基本的功能.

我一直觉得原生的GUI比跨平台的兄弟们更直观......

c++ user-interface cross-platform

4
推荐指数
2
解决办法
1576
查看次数

是否有生成复制文件的文件名的功能?

C#是否具有为复制项目生成新名称的任何功能?
例如,如果我有一个名为"Folder"的字符串,我需要一个函数来生成一个字符串"Copy of Folder"....并且给出字符串"Copy of Folder"该函数应该生成"Copy of Folder(1) " 等等 ....

.net c# filenames copy

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

什么是Windows IPC方法

问题:我有一个可以在另一个程序中加载的DLL.现在,dll可以访问其他程序中的所有数据/功能.

现在外部程序可以向该dll发送数据/命令,引导其他程序或从中获取数据,我可以使用哪种技术?

我的意思是,在过去,这意味着DDE,我认为这是在Windows 3.11/95次.我今天可以用什么?哪一个最容易?哪一个最快?

.net c# c++ vb.net dde

4
推荐指数
2
解决办法
2103
查看次数

ASP.NET计划删除临时文件

问题:我有一个ASP.NET应用程序,可以创建临时PDF文件(供用户下载).现在,许多用户在很多天内都可以创建许多PDF,这需要占用大量磁盘空间.

安排删除超过1天/ 8小时的文件的最佳方法是什么?最好是在asp.net应用程序本身...

c# vb.net asp.net scheduled-tasks temporary-files

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

为什么SendMessageTimeout不更新环境变量?

问题:我有一个安装程序,它会随程序安装一些本机dll.dll位于一个单独的文件夹中,我将其添加到路径环境变量中.

这已成功完成,如果我检查Windows系统设置,变量将显示在路径中.

但是,如果我启动命令行程序/服务,它说dll未找到...

我用set命令检查环境变量路径,我的文件夹不在那里.

如果我做

SET path = %path%;my/folder/here/
Run Code Online (Sandbox Code Playgroud)

然后启动我的程序,然后它的工作原理.

根据这篇MS KB文章,这是因为需要重新启动计算机.

除非我这样做

SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM) "Environment", SMTO_ABORTIFHUNG, 5000, &dwReturnValue);            
Run Code Online (Sandbox Code Playgroud)

现在我只使用下面的代码,但错误消息仍然存在.%path%中的我的文件夹拼写正确,我检查了一下.

我究竟做错了什么 ?

' http://www.pinvoke.net/default.aspx/Enums/SendMessageTimeoutFlags.html '
<Flags()> _
Public Enum SendMessageTimeoutFlags
    SMTO_NORMAL = 0
    SMTO_BLOCK = 1
    SMTO_ABORTIFHUNG = 2
    SMTO_NOTIMEOUTIFNOTHUNG = 8
End Enum    

' http://ghouston.blogspot.com/2005/08/how-to-create-and-change-environment.html '
Public Const HWND_BROADCAST As Integer = &HFFFF
Public Const WM_SETTINGCHANGE As Integer = &H1A    

' http://pinvoke.net/default.aspx/user32.SendMessageTimeout '
<System.Runtime.InteropServices.DllImport("user32.dll", SetLastError:=True)> _
Public Shared Function SendMessageTimeout(ByVal windowHandle As IntPtr, ByVal Msg …
Run Code Online (Sandbox Code Playgroud)

.net vb.net pinvoke environment-variables

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

如何在PostgreSQL中测试if语句?

问题:我想测试PostgreSQL中的if语句:

IF (SELECT COUNT(*) FROM pg_language WHERE lanname = 'plpgsql') > 0 THEN
    PRINT 'Good'
ELSE
    PRINT 'Bad'
END IF;
Run Code Online (Sandbox Code Playgroud)

现在这会在IF处抛出错误.

据我所知,这是因为我需要使用plpgsql来使用if,print和variables.

到目前为止,我可能还必须使用SELECT而不是print.

在将此语句执行到plpgsql之前,如何切换语言?

我想先测试它,然后我把它放在存储过程中.用变量等测试代码


编辑:

解决方案:

DO LANGUAGE plpgsql $$
    BEGIN
        IF (SELECT COUNT(*) FROM pg_language WHERE lanname = 'plpgsql') > 0 THEN 
            RAISE NOTICE 'GOOD';
        ELSE
            RAISE NOTICE 'BAD';
        END IF;
    END;
$$;
Run Code Online (Sandbox Code Playgroud)

sql postgresql plpgsql

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