Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .NET3.5和.NET4之间的属性访问差异_C#_.net_Wcf_Ssis - Fatal编程技术网

C# .NET3.5和.NET4之间的属性访问差异

C# .NET3.5和.NET4之间的属性访问差异,c#,.net,wcf,ssis,C#,.net,Wcf,Ssis,我试图在SSIS脚本任务中完全用代码创建WsHttpBinding 脚本任务在运行时无法访问app.config文件,因此我需要手动创建绑定并在代码中设置参数: WSHttpBinding binding = new WSHttpBinding{ Security = new WSHttpSecurity{ Mode= SecurityMode.TransportWithMessageCredential,

我试图在SSIS脚本任务中完全用代码创建WsHttpBinding

脚本任务在运行时无法访问app.config文件,因此我需要手动创建绑定并在代码中设置参数:

WSHttpBinding binding = 
        new WSHttpBinding{ 
            Security = new WSHttpSecurity{ 
                Mode= SecurityMode.TransportWithMessageCredential,
                Message = new NonDualMessageSecurityOverHttp{
                    ClientCredentialType = MessageCredentialType.UserName,
                }
            }
        };
这可以很好地编译,并且在.Net 4下可用,但是SSIS脚本任务只能使用Net 3.5作为其目标运行时

在试图编译这段代码时,我遇到了几个编译器错误,指出上面的一些属性由于其保护级别而处于可访问状态

显然,3.5和4之间有一个根本性的变化,允许在4下进行,但不允许在3.5下进行


有谁能提供一个解决方案来实现3.5中的上述功能吗?

在.NET 3.5和4.0之间,属性的行为方式没有变化

改变的是您试图访问的构造函数和属性的可访问性。在.NET4.0中,可以访问.NET3.5中无法访问的属性和构造函数

至于如何访问配置设置,您应该能够将配置设置放置在启动脚本的进程的配置文件中。这有点做作(因为它适用于所有脚本),但您应该能够做到这一点

您可以在此处阅读需要更改的配置文件以及在何处找到它们:


在.NET 3.5和4.0之间,属性的行为方式没有变化

改变的是您试图访问的构造函数和属性的可访问性。在.NET4.0中,可以访问.NET3.5中无法访问的属性和构造函数

至于如何访问配置设置,您应该能够将配置设置放置在启动脚本的进程的配置文件中。这有点做作(因为它适用于所有脚本),但您应该能够做到这一点

您可以在此处阅读需要更改的配置文件以及在何处找到它们:


是的,我在硬编码之前读过那篇文章,我想看看是否可以通过在脚本代码中定义绑定而不是依赖配置文件来提高包的可移植性,看起来这可能是我现在的选择!谢谢你的回答。是的,在我尝试硬编码之前我读了那篇文章,我想看看是否可以通过在脚本代码中定义绑定而不是依赖配置文件来提高包的可移植性,看起来这可能是我现在的选择!谢谢你的回答。