草庐IT

strong-reference-cycle

全部标签

c# - Visual Studio 2015 "Find All References"只搜索打开的文件

最近我安装了VisualStudio2015(MicrosoftVisualStudioCommunity2015Version14.0.25425.01Update3),用它打开了一个简单的网站,发现“查找所有引用”只搜索打开的文件。同一网站在VisualStudio2013中一切正常。然后我在VisualStudio2015中创建了一个新网站,“查找所有引用”仍然无法正常工作。所以我想这与我自己的网站无关,这是VisualStudio的问题。我用谷歌搜索并尝试了以下方法:确保网站的框架版本和VisualStudio配置都是4.0工具->导入和导出设置->重置所有设置检查输出窗口,没

c# - 在 Debug 中使用 Project Reference,在 Release 中使用 Nuget

我想同时在我的项目(A)和依赖的Nuget包(B)中工作,而不需要在每次更改时都发布nuget包。是否可以在构建调试时从解决方案(A)中引用Nuget项目(B)。在构建Release时使用Source中的Nuget包? 最佳答案 一种方法是手动编辑csproj文件。如果您当前已经引用了NuGet包,那么您将在csproj文件中拥有这样的部分:......\packages\log4net.2.0.8\lib\net45-full\log4net.dllTrue....在这个例子中,使用了log4net。对于您的NuGet包,公钥to

c# - 当我尝试重命名方法时,为什么 Visual Studio 告诉我有 "compiler generated references"?

我有一个名为FormattedJoin()的方法在名为ArrayUtil的实用程序类中.我尝试重命名FormattedJoin()只是Join()因为它的行为类似于.NET的string.Join()所以我认为使用相同的名称是有意义的。但是,当我尝试使用VisualStudio重命名该方法时,我收到此警告:Thismembermayhavecompilergeneratedreferenceswiththesamename.Refactoringthememberwillnotupdatethesereferences,whichmayintroducesemanticchangesa

c# - ExecuteScalar 调用抛出异常 "Object reference not set to an instance of an object"

在单元测试中调试以下方法时出现以下错误Objectreferencenotsettoaninstanceofanobject点击以下行时result=(int)validateDatabase.ExecuteScalar();方法是publicstaticBooleanValidate(stringargument1,stringargument2){intresult=-1;using(varconnection=newSqlConnection("connectionstring")){SqlCommandvalidateDatabase=newSqlCommand("PROCED

c# - 我得到 "missing a using directive or assembly reference"并且不知道出了什么问题

我正在尝试允许用户将数据输入到将添加到web.config文件的文本框中。我已将相关行添加到web.config文件中,但是当我创建此类时,一切都出错了。每当我尝试运行我的应用程序时,我总是收到“您是否缺少using指令或程序集引用错误”。我看过其他时候有人问过这个问题,但似乎无法弄清楚我哪里出错了。问题是我对VisualStudio非常陌生,对可能的答案一无所知。下面是产生错误的类文件。我希望我已经包括了你需要帮助我的一切。谢谢。usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Configuration;nam

c# - Lazy<T> 延迟加载错误 : A field initializer cannot reference the non-static field, 方法或属性

我第一次尝试使用延迟加载来初始化我的类中的进度对象。但是,我收到以下错误:Afieldinitializercannotreferencethenon-staticfield,method,orproperty.privateLazym_progress=newLazy(()=>{longtotalBytes=m_transferManager.TotalSize();returnnewProgress(totalBytes);});在.NET2.0中,我可以执行以下操作,但我更愿意使用更新的方法:privateProgressm_progress;privateProgressPro

c# - 如何为 "T must be a reference type"编写单元测试?

考虑:classMyClasswhereT:class{}在这种情况下,where子句强制执行MyClass只是引用类型的泛型的规范。理想情况下,我应该有一个测试此规范的单元测试。然而,这个单元测试显然行不通,但它解释了我想要完成的事情:[Test][DoesNotCompile()]publicvoidT_must_be_a_reference_type(){vartest=newMyClass();}如何测试通过不允许代码编译实现的规范?编辑:更多信息:好的,所以我这样做的理由(哈哈)是我一直在遵循TDD方法,在这种方法中,除非单元测试失败,否则您不能编写任何代码。假设您有这个:c

c# - 如何使用 C# 在 <strong> 标签之间提取字符串?

假设我有一个如下所示的字符串:"UnneededtextNeededTextMoreunneededtext"如何只提取“需要的文本”?我猜Regex可能是最简单的方法,但Regex对我来说仍然像象形文字。 最佳答案 Regexregex=newRegex("(.*)");varv=regex.Match("UnneededtextNeededTextMoreunneededtext");strings=v.Groups[1].ToString(); 关于c#-如何使用C#在标签之间提取

c# - 什么位置安装文件 - Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5

请耐心等待,我会尽量解释清楚。我开始了一个新项目(类库),目标是4.5而不是客户端配置文件4.5。我添加了一个引用“System.Runtime.Serialization”,属性表明它位于“C:\ProgramFiles(x86)\ReferenceAssemblies\Microsoft\Framework.NETFramework\v4.5\System.Runtime.Serialization”位置。dll”在我的电脑上,它可以通过使用msbuild的构建脚本正常编译。在使用teamcity的构建服务器上-它会提示errorCS0012:Thetype'System.Obje

c# - 我们什么时候不应该创建 Assembly 的强名称? "strong named assembly"的缺点是什么?

我有一个项目,即library.exe。在此我引用了一个程序集(logging.dllver1.0.3.0)并且我给这个程序集起了一个强名称。现在假设我更改了logging.dll中的一个方法并制作了版本1.0.4.0。现在当我用这个新的DLL复制/替换旧的DLL时,我得到了一个异常。我知道异常是因为我更改了DLL的版本号。因为它是一个强名称DLL,除非我重建library.exe,否则不允许使用它。上面的故事我想说的是仅当我们必须将其添加到GAC时,才对程序集使用强名称。如果我们有一个应用程序,其中单个程序集需要更新,请不要使用强命名程序集。我对第1点和第2点的看法是否正确?什么时候