javascript

java

python

c#

android

node.js

c++

reactjs

php

html

jquery

css

.net

ios

git

ruby-on-rails

sql

c

string

ruby

CodeGo.net>如何从Web.config中的自定义部分读取值

我在我的web.config文件中添加了一个名为null的自定义部分:

<configuration>
  <configSections>
    <section name="secureAppSettings" type="System.Configuration.NameValueSectionHandler, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  </configSections>
  <secureAppSettings>
    <add key="userName" value="username"/>
    <add key="userPassword" value="password"/>
  </secureAppSettings>  
</configuration>

null被解密并在其中具有两个密钥。

现在在我的代码中,我尝试访问如下键:

string userName = System.Configuration.ConfigurationManager.secureAppSettings["userName"];
string userPassword = System.Configuration.ConfigurationManager.secureAppSettings["userPassword"];

但是null正在返回这些字段。

如何获取字段值?

trans by 2020-02-16T00:07:38Z

CodeGo.net>如何从XmlNode实例获取xpath

有人可以提供一些代码来获取System.Xml.XmlNode实例的xpath吗?

谢谢!

trans by 2020-02-15T05:38:52Z

c#-using(){}块中的yield return语句在执行之前进行处置

我已经编写了自己的自定义数据层以保留到特定文件,并使用自定义DataContext模式对其进行了抽象。

这全部基于.NET 2.0框架(对目标服务器有限制),因此即使其中一些看起来像LINQ-to-SQL,但事实并非如此! 我刚刚实现了类似的数据模式。

请参阅以下示例,以了解我无法解释的情况。

要获取Animal的所有实例,我可以这样做,并且效果很好

public static IEnumerable<Animal> GetAllAnimals() {
        AnimalDataContext dataContext = new AnimalDataContext();
            return dataContext.GetAllAnimals();
}

以及下面的AnimalDataContext()中的GetAllAnimals()方法的实现

public IEnumerable<Animal> GetAllAnimals() {
        foreach (var animalName in AnimalXmlReader.GetNames())
        {
            yield return GetAnimal(animalName);
        }
}

AnimalDataContext()实现IDisposable,因为我在那里有一个XmlTextReader,我想确保它能快速清理。

现在,如果我将第一个调用包装在using语句中,如下所示

public static IEnumerable<Animal> GetAllAnimals() {
        using(AnimalDataContext dataContext = new AnimalDataContext()) {
            return dataContext.GetAllAnimals();
        }
}

并在AnimalDataContext.GetAllAnimals()方法的第一行放置一个断点,并在AnimalDataContext.Dispose()方法的第一行放置另一个断点,然后执行...

Dispose()方法被称为FIRST,因此AnimalXmlReader.GetNames()给出“对象引用未设置为对象实例”的异常,因为在Dispose()中将AnimalXmlReader设置为null。

有任何想法吗? 我有一种预感,不允许在try-catch块中调用与收益率相关的收益,该收益在编译后使用有效表示...

trans by 2020-02-14T09:40:43Z

c#-确定PDF fi中的页数

我需要使用C#代码(.NET 2.0)确定指定PDF文件中的页数。 PDF文件将从文件系统而不是URL中读取。 有人对如何做到这一点有任何指示吗? 注意:Adobe Acrobat Reader安装在将执行此检查的PC上。

trans by 2020-02-02T13:44:00Z

c#-“此程序集由比当前加载的运行时新的运行时构建,无法加载”

我收到错误消息:“此程序集是由比当前加载的运行时新的运行时构建的,无法加载。”

我有一个.NET 2.0项目正在调用的.NET 4.0 dll项目。 有没有办法调和框架的差异?

trans by 2020-01-19T18:07:56Z

c#-过时的属性导致XmlSerialization忽略属性

我正在重构一些序列化为XML的对象,但需要保留一些属性以实现向后兼容,我有一种方法可以为我将旧对象转换为新对象,并使过时的属性为空。 我想使用Obsolete属性来告诉其他开发人员不要使用此属性,但这会导致XmlSerializer忽略该属性。

相似代码:

[Serializable]
public class MySerializableObject
{
    private MyObject _oldObject;
    private MyObject _anotherOldObject;

    private MyObject _newBetterObject;

    [Obsolete("Use new properties in NewBetterObject to prevent duplication")]
    public MyObject OldObject
    {
      get { return _oldObject; }
      set { _oldObject = value; }
    }

    [Obsolete("Use new properties in NewBetterObject to prevent duplication")]
    public MyObject AnotherOldObject
    {
      get { return _anotherOldObject; }
      set { _anotherOldObject = value; }
    }

    public MyObject NewBetterObject
    {
      get { return _anotherOldObject; }
      set { _anotherOldObject = value; }
    } 
}

有什么解决办法吗? 我最好的解决方案是在XML注释中写过时的...

更新:我正在使用.NET 2.0

trans by 2020-01-13T09:35:38Z

.NET 2.0运行时上的LINQ

启用LINQ的应用程序可以在仅安装.NET 2.0运行时的计算机上运行吗?

从理论上讲,LINQ只是语法糖,而且生成的IL代码应与.NET 2.0中的外观相同。

如何在不使用.NET 3.5库的情况下编写LINQ? 它可以在.NET 2.0上运行吗?

trans by 2019-11-05T08:02:38Z

如何使用反射调用.NET中的重载方法

有没有一种方法可以使用.NET(2.0)中的反射来调用重载方法。 我有一个应用程序,可以动态实例化从一个通用基类派生的类。 出于兼容性目的,此基类包含2个同名的方法,一个带有参数,另一个不带参数。 我需要通过Invoke方法调用无参数方法。 现在,我得到的只是一个错误,告诉我我正在尝试调用一个模棱两可的方法。

是的,我可以将对象强制转换为基类的实例,然后调用所需的方法。 最终会发生这种情况,但是现在,内部复杂性是不允许的。

任何帮助将是巨大的! 谢谢。

trans by 2019-10-05T16:15:01Z

.net-编码XML文本数据的最佳方法

我在.Net中寻找一种通用方法来编码供Xml元素或属性使用的字符串,当我没有立即找到一个字符串时,我感到很惊讶。 因此,在进一步介绍之前,我是否会错过内置功能?

暂时假设它确实不存在,我正在整理自己的通用EncodeForXml(string data)方法,并且正在考虑实现此目的的最佳方法。

我使用的数据提示整个过程可能包含&,<,“等错误字符。它有时还可能包含正确转义的实体:,<和”,这意味着仅使用CDATA节可能不会 成为最好的主意。 那似乎有点笨拙。 我宁愿最终得到一个可以直接在xml中使用的漂亮字符串值。

过去,我一直使用正则表达式来捕获“&”号,在这种情况下以及第一步,我都想使用它来捕获它们,然后对其他字符进行简单替换。

因此,可以在不使其变得过于复杂的情况下对其进行进一步优化吗?我还缺少什么吗?:

Function EncodeForXml(ByVal data As String) As String
    Static badAmpersand As new Regex("&(?![a-zA-Z]{2,6};|#[0-9]{2,4};)")

    data = badAmpersand.Replace(data, "&amp;")

    return data.Replace("<", "&lt;").Replace("""", "&quot;").Replace(">", "gt;")
End Function

抱歉,所有您仅使用C#的人们-我真的不在乎我使用哪种语言,但是我想使Regex静态化,并且您不能在C#中做到这一点,除非在方法之外声明它,所以这将是VB 。净

最后,我们仍然在.Net 2.0上工作,但是如果有人可以使用最终产品并将其转换为字符串类的扩展方法,那也将很酷。

更新前几个响应表明.Net确实具有内置的方法。 但是,既然我已经开始,我有点想完成我的EncodeForXml()方法只是为了好玩,所以我仍在寻找改进的想法。 值得注意的是:应该被编码为实体的更完整的字符列表(可能存储在列表/映射中),并且比对串行不可变字符串执行.Replace()可以获得更好的性能。

trans by 2019-09-29T09:08:49Z

c#-System.Array.CopyTo()和System.Array.Clone()之间的区别

2544548843862062044和2544548843862062045之间有什么区别?

trans by 2019-09-27T17:17:19Z

.net-将跟踪输出重定向到Cons

假设我正在VB.Net中开发一个小的批处理控制台应用程序。 我希望能够像这样构建应用程序:

Sub WorkerMethod()
   'Do some work
   Trace.WriteLine("Work progress")

   'Do more work
   Trace.WriteLine("Another progress update")

   '...
End Sub


Sub Main()

   'Do any setup, like confirm the user wants to continue or whatever

   WorkerMethod()     

End Sub

请注意,我在输出中使用的是Trace,而不是Console。 这是因为worker方法可能是从其他地方调用的,甚至可能位于其他程序集中,并且我希望能够将不同的跟踪侦听器附加到该方法。 那么如何将控制台连接到跟踪?

我已经可以通过定义一个简单的类(如下所示)并将一个实例添加到Trace的listeners集合中来做到这一点,但是我想知道是否还有一种更被接受或内置的方式来实现此目的:

Public Class ConsoleTrace
    Inherits Diagnostics.TraceListener

    Public Overloads Overrides Sub Write(ByVal message As String)
        Console.Write(message)
    End Sub

    Public Overloads Overrides Sub WriteLine(ByVal message As String)
        Console.WriteLine(message)
    End Sub
End Class
trans by 2019-09-26T03:28:16Z

首页> C#>您应该如何诊断错误SEHException-外部组件引发了异常

每当用户报告错误时,例如

System.Runtime.InteropServices.SEHException-外部组件引发了异常?

作为程序员,我有什么能确定原因的?

场景:一个用户(使用我公司编写的程序)报告了此错误。这可能是或可能不是一次性错误。 他们提到,在过去的一个月中,计算机两次“停止工作”。 我从经验中学到了,不要从字面上理解此描述,因为这通常意味着与计算机有关的某人未按预期工作。 他们无法向我提供更多详细信息,并且我找不到任何记录的错误。 因此,可能是也可能不是这个错误。

从堆栈跟踪来看,实际的错误是在构造一个类时,该类不直接调用任何互操作代码,但可能由于该对象可能是数据绑定到DevExpress网格的列表的一部分而变得复杂。

该错误是由未处理的异常例程“捕获”的,该例程通常将关闭程序,但可以选择忽略并继续。 如果他们选择忽略该错误,则程序将继续运行,但在下次运行该例程时会再次发生该错误。 但是,在关闭并重新启动我们的应用程序后,它不再发生。

有关计算机似乎没有受到压力。 它运行的是Vista Business,具有2GB的内存,而根据Task Manager的估计,我们的应用程序仅使用了大约一半的内存,仅为200Mb。

还有另一条可能不相关的信息。 同一程序的另一部分使用第三方组件,该组件实际上是本机dll周围的dotnet包装器,并且该组件确实存在一个已知问题,在这种情况下,偶尔会出现

尝试读取或写入受保护的内存。 这通常表明其他内存已损坏

组件制造商表示,此问题已在我们内部使用的组件的最新版本中得到修复,但尚未提供给客户。

鉴于错误的后果很低(不会丢失任何工作,并且无需重新启动程序,最多只需花费一分钟即可恢复到原来的状态),并且考虑到客户很快就会获得新版本(更新的第三版 派对组件),我显然可以用手指指望,并且不会再次发生该错误。

但是我还能做些什么吗?

trans by 2019-09-22T02:58:08Z

c# - 调试没有

当我按F5(调试模式)时没有任何反应。 构建工作正常,exe文件我可以正常启动,但无法启动调试。 为什么?

trans by 2019-07-28T03:13:55Z

我可以控制.NET用户设置的位置,以避免丢失应用程序升级的设置吗?

我正在尝试自定义user.config文件的位置。 目前,它存储了哈希和版本号

%AppData%\[CompanyName]\[ExeName]_Url_[some_hash]\[Version]\

我希望它与应用程序的版本无关

%AppData%\[CompanyName]\[ProductName]\

可以这样做,怎么做? 有什么影响? 升级后,用户是否会丢失先前版本的设置?

trans by 2019-07-21T19:06:38Z

.net - 将跟踪输出重定向到Cons

假设我正在使用VB.Net中的一个小批量处理控制台应用程序。 我希望能够像这样构建应用程序:

Sub WorkerMethod()
   'Do some work
   Trace.WriteLine("Work progress")

   'Do more work
   Trace.WriteLine("Another progress update")

   '...
End Sub


Sub Main()

   'Do any setup, like confirm the user wants to continue or whatever

   WorkerMethod()     

End Sub

请注意,我的输出使用Trace而不是Console。 这是因为可以从其他地方调用worker方法,或者甚至生活在不同的程序集中,我希望能够为它附加不同的跟踪侦听器。 那么如何将控制台连接到跟踪?

我已经可以通过定义一个简单的类(如下所示)并在Trace的侦听器集合中添加一个实例来实现它,但我想知道是否有更多接受或内置的方法来完成此任务:

Public Class ConsoleTrace
    Inherits Diagnostics.TraceListener

    Public Overloads Overrides Sub Write(ByVal message As String)
        Console.Write(message)
    End Sub

    Public Overloads Overrides Sub WriteLine(ByVal message As String)
        Console.WriteLine(message)
    End Sub
End Class
trans by 2019-06-20T07:40:40Z

.net:System.Web.Mail vs System.Net.Mail

我正在考虑将我从.net 1.1继承的项目转换为.net 2.0。 我担心的主要警告是它要我从System.Web.Mail切换到使用System.Net.Mail

我还没准备好使用过时的System.Web.Mail重新编写所有组件,所以我很想知道是否有任何社区成员在.net 2.0下使用它时遇到问题?

trans by 2019-06-20T03:03:02Z

.net - 如何在C#中创建一个简单的代理?

几个星期前我已经下载了Privoxy,为了好玩,我很想知道它的简单版本是如何完成的。

我知道我需要配置浏览器(客户端)以向代理发送请求。 代理将请求发送到Web(假设它是一个http代理)。 代理将收到答案......但代理如何将请求发送回浏览器(客户端)?

我在网上搜索了C#和http代理,但是没有找到让我理解它在幕后正确工作的东西。 (我相信我不想要反向代理,但我不确定)。

你们有没有一些解释或一些信息让我继续这个小项目?

更新

这就是我的理解(见下图)。

步骤1我将所有请求的客户端(浏览器)配置为在Proxy侦听的端口发送到127.0.0.1。 这样,请求将不会直接发送到Internet,而是由代理处理。

步骤2代理查看新连接,读取HTTP标头并查看必须执行的请求。 他执行请求。

步骤3代理从请求中接收答案。 现在他必须从网上发送答案给客户但是怎么样???

alt text

有用的链接

Mentalis代理:我发现这个项目是一个代理(但我想要的更多)。 我可能会查看来源,但我真的想要一些基本的东西来理解更多的概念。

ASP代理:我也许可以在这里获得一些信息。

请求反射器:这是一个简单的例子。

这是一个带有简单Http代理的Github存储库。

trans by 2019-05-29T04:37:29Z

c# - 在WinForms设计中显示控件层次结构

我们的一个客户端有一个旧的WinForms应用程序,其中包含对其进行大量控制的表单。 其中一些控件具有深层次结构,这使得在设计器中很难选择它们。

我需要了解这个层次结构,以修改应用程序以纠正一些错误。 有没有办法清楚地看到这种层次结构? 例如,当您有HTML层次结构中的痕迹(HTML&gt; Body&gt; div&gt;等)时,是否有类似于.aspx源文件中可见的内容? 或者更直观的东西?

trans by 2019-05-24T20:11:46Z

c# - 如何诊断错误SEHException - 外部组件抛出异常

每当用户报告错误时,例如

System.Runtime.InteropServices.SEHException - 外部组件引发了异常?

我作为程序员可以做些什么来确定原因?

场景:一个用户(使用我公司编写的程序)报告了此错误。这可能是也可能不是一次性错误。 他们提到,在上个月,计算机已经两次“停止工作”。 我从经验中学到了,不是太过于字面意思,因为它通常意味着与计算机有关的人没有按预期工作。 他们无法给我更多细节,我找不到任何记录错误。 因此它可能是也可能不是这个错误。

从堆栈跟踪中,实际错误是在构造一个不直接调用任何互操作代码的类时,但可能因为该对象可能是与DevExpress Grid数据绑定的列表的一部分这一事实而复杂化。

错误被未处理的异常例程“捕获”,该例程通常会关闭程序,但可以选择忽略并继续。 如果他们选择忽略错误,则程序继续工作,但下次运行此例程时会再次出现错误。 但是,在关闭并重新启动应用程序后,它不会再次出现。

有问题的电脑似乎没有压力。 它正在运行Vista Business,拥有2GB的内存,根据任务管理器,我们的应用程序只使用了大约一半,只有大约200Mb。

还有一条信息可能相关或不相关。 同一程序的另一部分使用第三方组件,它实际上是一个围绕本机dll的dotnet包装器,这个组件确实有一个已知的问题,偶尔,你得到一个

尝试读取或写入受保护的内存。 这通常表明其他内存已损坏

组件制造商表示,这已在我们内部使用的最新版本的组件中修复,但尚未向客户提供。

鉴于错误的后果很少(没有工作丢失并重新启动程序并返回到最多只需要一分钟的时间)并且考虑到客户将很快获得一个新版本(更新后的第三个 - 派对组件),我显然可以交叉手指,希望错误不再发生。

但还有什么我可以做的吗?

trans by 2019-05-08T02:25:38Z

.net - 如何在C#中获取和设置环境变量?

如何获取环境变量,如果缺少某些内容,请设置值?

trans by 2019-04-28T21:12:45Z

1 2 下一页 共2页