小编Chr*_*ani的帖子

OpenID和OAuth有什么区别?

我真的想了解OpenID和OAuth之间的区别吗?也许他们是两个完全不同的东西?

openid authentication oauth

927
推荐指数
13
解决办法
24万
查看次数

在.NET中使用后将对象设置为Null/Nothing

完成后,是否应该将所有对象设置为null(Nothing在VB.NET中)?

我理解在.NET中必须处理实现IDisposable接口的任何对象实例以释放一些资源,尽管对象在处理之后仍然可以是某种东西(因此isDisposed表单中的属性),所以我认为它仍然可以驻留在记忆中还是至少部分?

我也知道当一个对象超出范围时,它会被标记为收集准备好下一次垃圾收集器的传递(虽然这可能需要时间).

因此,考虑到这一点,将其设置为null加速系统释放内存,因为它不必解决它不再在范围内并且它们是否有任何不良副作用?

MSDN文章从未在示例中执行此操作,目前我这样做是因为我无法看到它的危害.但是我遇到了各种意见,所以任何评论都是有用的.

.net c# vb.net null memory-management

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

在c#中的特定时区创建日期时间

我正在尝试创建一个单元测试来测试机器上时区变化的情况,因为它已被错误地设置然后更正.

在测试中,我需要能够在非本地时区创建DateTime对象,以确保运行测试的人员无论身在何处都能成功完成.

从我从DateTime构造函数中可以看到,我可以将TimeZone设置为本地时区,UTC时区或未指定.

如何使用PST等特定时区创建DateTime?

.net c# timezone datetime .net-3.5

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

System.Security.SecurityException:找不到源,但无法搜索部分或全部事件日志.无法访问的日志:安全性

我正在尝试创建一个Windows服务,但是当我尝试安装它时,它会回滚给我这个错误:

System.Security.SecurityException:找不到源,但无法搜索部分或全部事件日志.无法访问的日志:安全性.

我不知道这意味着什么 - 我的应用程序有最低限度,因为我只是先测试一下.

我的安装员代码:

namespace WindowsService1
{
    [RunInstaller(true)]
    public partial class ProjectInstaller : System.Configuration.Install.Installer
    {
        public ProjectInstaller()
        {
            //set the privileges
            processInstaller.Account = ServiceAccount.LocalSystem;
            processInstaller.Username = null;
            processInstaller.Password = null;

            serviceInstaller.DisplayName = "My Service";
            serviceInstaller.StartType = ServiceStartMode.Manual;

            //must be the same as what was set in Program's constructor
            serviceInstaller.ServiceName = "My Service";

            this.Installers.Add(processInstaller);
            this.Installers.Add(serviceInstaller);
        }

        private void serviceProcessInstaller1_AfterInstall(object sender, InstallEventArgs e)
        {
        }

        private void serviceInstaller1_AfterInstall(object sender, InstallEventArgs e)
        {
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的服务代码:

public partial class Service1 …
Run Code Online (Sandbox Code Playgroud)

c# windows windows-services event-log

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

“CascadePackage”包未正确加载

我刚刚对 VS2019(16.9.0) 进行了更新,现在我收到了这条消息。(实际上在两台机器上)。重新启动不能解决问题。

什么是 CascadePackage?我No可以对着对话框说就可以了吗?

另外......它提到要检查的文件......不再存在,也不存在它所在的目录。 在此处输入图片说明

我确实在最新的 ActivityLog.xml 中找到了这一行

  <entry>
    <record>894</record>
    <time>2021/03/05 13:52:21.259</time>
    <type>Error</type>
    <source>VisualStudio</source>
    <description>SetSite failed for package [CascadePackage]Source: &apos;System.ComponentModel.Composition&apos; Description: The composition produced multiple composition errors, with 3 root causes. The root causes are provided below. Review the CompositionException.Errors property for more detailed information.&#x000D;&#x000A;&#x000D;&#x000A;1) No exports were found that match the constraint: &#x000A;&#x0009;ContractName&#x0009;Microsoft.VisualStudio.Cascade.Commands.IJoinCommandLineHandler&#x000A;&#x0009;RequiredTypeIdentity&#x0009;Microsoft.VisualStudio.Cascade.Commands.IJoinCommandLineHandler&#x000D;&#x000A;&#x000D;&#x000A;Resulting in: Cannot set import &apos;Microsoft.VisualStudio.Cascade.CascadePackage.JoinWorkspaceCommandHandler (ContractName=&quot;Microsoft.VisualStudio.Cascade.Commands.IJoinCommandLineHandler&quot;)&apos; on part &apos;Microsoft.VisualStudio.Cascade.CascadePackage&apos;.&#x000D;&#x000A;Element: Microsoft.VisualStudio.Cascade.CascadePackage.JoinWorkspaceCommandHandler (ContractName=&quot;Microsoft.VisualStudio.Cascade.Commands.IJoinCommandLineHandler&quot;) --&gt;  Microsoft.VisualStudio.Cascade.CascadePackage&#x000D;&#x000A;&#x000D;&#x000A;2) No exports were found that match the constraint: &#x000A;&#x0009;ContractName&#x0009;Microsoft.VisualStudio.Cascade.Commands.IShareCommandLineHandler&#x000A;&#x0009;RequiredTypeIdentity&#x0009;Microsoft.VisualStudio.Cascade.Commands.IShareCommandLineHandler&#x000D;&#x000A;&#x000D;&#x000A;Resulting in: …
Run Code Online (Sandbox Code Playgroud)

visual-studio-2019

55
推荐指数
1
解决办法
3697
查看次数

stream.CopyTo - 文件为空.asp.net

我正在使用此代码保存上传的图像:

using (var fileStream = File.Create(savePath))
{
   stream.CopyTo(fileStream);
}
Run Code Online (Sandbox Code Playgroud)

当图像保存到目标文件夹时,它是空的,0 kb.这可能有什么不对吗?我在复制之前检查了stream.Length并且它不是空的.

c# asp.net filestream

27
推荐指数
1
解决办法
9841
查看次数

无法从Microsoft.Extensions.Logging解析ILogger

我已经Main像这样配置了控制台应用程序

var services = new ServiceCollection()
                .AddLogging(logging => logging.AddConsole())
                .BuildServiceProvider();
Run Code Online (Sandbox Code Playgroud)

然后我尝试在另一个类中使用它

    private readonly ILogger _logger;

    public MyClass(ILogger logger)
    {
        _logger = logger;
    }

    public void MyFunc()
    {
        _logger.Log(LogLevel.Error, "My Message");
    }
Run Code Online (Sandbox Code Playgroud)

System.InvalidOperationException:'无法解析类型为'Microsoft.Extensions.Logging.ILogger的服务'

我在这里尝试了解决方案但对我而言不起作用。

根据以下Yaakov的评论和Github的评论进行编辑,我能够通过此操作正确解决它

    public MyClass(ILogger<MyClass> logger)
    {
        _logger = logger;
    }
Run Code Online (Sandbox Code Playgroud)

我本来希望在初始时使用它,BuildServiceProvider但看起来每次要使用记录器(或创建自己的ILogger)时都必须重复此操作。

.net c# dependency-injection .net-core ilogger

14
推荐指数
8
解决办法
9122
查看次数

您应该将SQL存储过程存储在源代码管理中吗?

在开发具有大量存储过程的应用程序时,是否应将它们存储在某种源版本控制系统中(例如源安全,TFS,SVN)?如果是这样,为什么?使用SQL Server Management Studio是否有方便的前端方式?

sql sql-server version-control stored-procedures

12
推荐指数
3
解决办法
3705
查看次数

AsyncLocal拿着一个堆栈-看似稳定的代码抛出“堆栈为空”。为什么?

知道AsyncLocal很棘手。但是,我什至不能100%肯定会受到谴责。我不明白下面的代码是不是“气密”的。

private readonly AsyncLocal<Stack<int>> _myStack = new AsyncLocal<Stack<int>>();

private void MyMethod()
{
    var myStack = _myStack.Value ?? (_myStack.Value = new Stack<int>());
    myStack.Push(42);
    try
    {
        // code here, which may recursively call the same function again.
        // all single-threaded without any async calls, though
    }
    finally
    {
        myStack.Pop(); // this occasionally throws "Stack empty"
    }
}
Run Code Online (Sandbox Code Playgroud)

引发异常时,此方法中的调用堆栈仅“深”。

没有对的其他引用_myStack,并且myStack(本地var)没有向下传递或在其他任何地方使用。

我的理解在哪里分解?无论使用哪种方式AsyncLocal,我都会抓住一个Stack<>对象,向其推入一些东西-无论发生什么情况,都只在其中弹出一次finally

没有其他异常抛出-堆栈根本不深(在这种情况下为1或2,可能是3个级别)。没有非托管代码。

我没有最低限度的复制,而且似乎随机发生。这就是为什么AsyncLocal首先要引入它的原因-以防万一有两个线程介入并破坏了Stack可能的内部状态。

c# stack

8
推荐指数
0
解决办法
124
查看次数

我可以为元组中的一个项返回空值吗?

我有一个返回两个值的方法(HttpResponse和Generic对象).以下是代码段.

在某些情况下,我必须将其中一个项返回为null.我尝试了以下条件,但它没有奏效.

internal sealed class OnlineHelper<T>
{
   internal static Tuple<T, HttpStatusCode> GetRequest(arg1, arg2...)
   {
      ....
      if (webResponse.StatusCode == HttpStatusCode.OK)
      {
          return Tuple.Create(serializer.Deserialize<T>(response),
                     webResponse.StatusCode);
      }


      return Tuple.Create(null, webResponse.StatusCode); // Compiler error
      return Tuple.Create(default(T), webResponse.StatusCode);
      // ^- Throwing null reference exception.

   }
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net null tuples

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