问题列表 - 第30803页

c#+ WebForms + static - 最佳实践是什么?

我绝对不是WebForms的粉丝,我更喜欢.NET世界的ASP.NET MVC.

无论如何,我正在研究一个非常大的遗留WebForms应用程序的一小部分.

我正在整合Korzh.com的EasyQuery.NET.允许最终用户根据预定义的模型创建自己的SQL查询,使用户友好的别名.

这是相关的,因为Korzh的演示使用Global.asax作为其模型和
查询类以及Session.

因为遗留的WebForms应用程序非常大,所以Global.asax不用于
特定于页面的项目.

我的解决方案是使用私有静态.静态在桌面
应用程序中运行良好,但似乎最不可能在WebForms应用程序中引起一些悲伤.

我发现了!IsPostBack不太可靠,在我看来,
在WebForms中,最佳实践可能是使用Session.
Session 的问题在于它似乎通过HTML传递给客户端,并且可以
以千字节为单位增长.

问题:

由于静态变量在与WebForms一起使用时驻留在IIS服务器上,因此WebForms应用程序的每个用户是否共享相同的静态变量地址空间?(我认为答案是肯定的).

在ASP.NET WebForms应用程序中使用/不使用静态变量的最佳实践/指南是什么?

谢谢.
此致,
格里(洛瑞)

PS:我无法
通过谷歌或搜索SO 找到答案.

c# static

3
推荐指数
1
解决办法
2019
查看次数

如何初始化类字段?

这是一个基本问题,但我很难找到明确的答案.

除了方法中的赋值之外,初始化列表是否是在C++中初始化类字段的唯一方法?

如果我使用错误的术语,这就是我的意思:

class Test
{
public:
    Test(): MyField(47) { }  // acceptable
    int MyField;
};

class Test
{
public:
    int MyField = 47; // invalid: only static const integral data members allowed
};
Run Code Online (Sandbox Code Playgroud)

编辑:特别是,有一个很好的方法来使用struct初始化器初始化struct字段吗?例如:

struct MyStruct { int Number, const char* Text };

MyStruct struct1 = {};  // acceptable: zeroed
MyStruct struct2 = { 47, "Blah" } // acceptable

class MyClass
{
    MyStruct struct3 = ???  // not acceptable
};
Run Code Online (Sandbox Code Playgroud)

c++ initialization ctor-initializer

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

findViewByID返回null

首先:是的,我阅读了关于这个主题的所有其他主题.不仅是来自这个网站的人......(你看,我有点沮丧)

他们中的大多数都提供了使用建议,android:id而不仅仅是id在XML文件中.我做到了.

我从其他人那里了解到,View.findViewById与众不同Activity.findViewById.我也是这样处理的.

在我location_layout.xml,我使用:

<FrameLayout .... >
    <some.package.MyCustomView ... />

    <LinearLayout ... >
        <TextView ...
            android:id="@+id/txtLat" />
        ...
    </LinearLayout>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

在我的活动中,我做了:

...
setContentView( R.layout.location_layout );
Run Code Online (Sandbox Code Playgroud)

在我的自定义视图类中:

... 
TextView tv = (TextView) findViewById( R.id.txtLat );
Run Code Online (Sandbox Code Playgroud)

返回null.这样做,我的活动工作正常.也许这是因为Activity.findViewByIdView.findViewById差异.所以我在本地存储了传递给海关视图构造函数的上下文并尝试:

...
TextView tv = (TextView) ((Activity) context).findViewById( R.id.txtLat );
Run Code Online (Sandbox Code Playgroud)

这也回来了null.

然后,我改变了我的自定义视图扩展ViewGroup,而不是View和改变location_layout.xmlTextView我的自定义视图的直接子,从而使View.findViewById应该工作的设想.惊喜:它没有解决任何问题.

那么我做错了什么?

我会感激任何评论.

android android-view

238
推荐指数
10
解决办法
16万
查看次数

函数原型中的参数

我的问题是:当我在C中编写函数原型时,如下所示:

void foo(int *vector);
Run Code Online (Sandbox Code Playgroud)

这是一回事:

void foo(int vector[MAX_LENGTH]);
Run Code Online (Sandbox Code Playgroud)

到函数,总是作​​为指针传递?代码是一样的吗?提前致谢.

c c++ arrays pointers

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

使用存储过程在C#中实现分页实现(SQL 2000)

任何人都有一个带有分页的示例代码的链接,可以更改为在(10000+记录)表中工作?我想在我的asp.net页面上显示记录.

干杯

c# asp.net

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

JSF <h:outputFormat>:使用数组值作为参数

在我的JSF2页面上,我正在使用国际化的错误消息.

在我的支持bean中,我将消息放入flash范围:

flash.put("error", exception.getType());
Run Code Online (Sandbox Code Playgroud)

在页面上,此字符串以这种方式翻译:

<h:outputText value="#{bundle[flash.error]}"/>
Run Code Online (Sandbox Code Playgroud)

工作良好.

现在我想能够将(任意数量的)参数放入消息文本中,这些参数将插入到message.properties中i18n属性的占位符中.因此,我将参数作为String数组放入Flash Scope中,如下所示:

//exception.getParameters returns String[]
flash.put("errorParams", exception.getParameters())
Run Code Online (Sandbox Code Playgroud)

现在我也希望能够使用这个String数组作为outputFormat元素的参数,将它们插入到像这样的属性中Welcome, {0} {1}.所以我试图通过使用ui实现这一点:重复:

<h:outputFormat value="#{bundle[flash.error]}" rendered="#{! empty flash.error}" class="invalid">
  <ui:repeat value="#{flash.errorParams}" var="_param">
    <f:param value="#{bundle[_param]}"/>
    <!-- also doesn't work: <f:param value="#{_param}"/>-->
  </ui:repeat>
</h:outputFormat>
Run Code Online (Sandbox Code Playgroud)

不幸的是,param值被忽略,并且i18n-property的占位符没有被替换,因此渲染的输出是Welcome, {0} {1}.当使用"常规"转发器时,将数组元素显示为输出文本,它可以工作.所以outputFormat标签似乎不支持使用repeat作为子元素.该死的,如此接近;)任何人都知道一个很好的方法来做我想要的,或者是否有任何组件库支持这样的东西?

jsf facelets jsf-2

6
推荐指数
1
解决办法
4827
查看次数

测试驱动设计 - 我哪里出错了?

我正在玩家里的玩具项目,以更好地了解测试驱动设计.起初似乎进展顺利,我遇到了失败的测试,代码,通过测试.

然后我来添加一个测试,并意识到我现在的结构会很困难,而且我应该分开一个有太多责任的特定课程.为下一次测试增加更多的责任显然是错误的.我决定抛开这个测试,并重构我所拥有的.这是事情开始出错的地方.

如果不立即进行大量测试就很难进行重构,然后唯一的选择就是做出许多改变,并希望我最终回到测试再次通过的地方.测试本身是有效的,我只需要在重构时打破几乎所有测试.在我回到所有测试通过之前,重构(我仍然不满意)花了我五六个小时.测试确实帮助了我.

感觉就像我离开了TDD赛道.你觉得我做错了什么?

由于这主要是一个学习练习,我正在考虑回滚所有的重构,并试图以更好的方式再次前进.

language-agnostic tdd refactoring

9
推荐指数
1
解决办法
324
查看次数

数据包在窗口OS下嗅探

我想在没有wincap库的情况下嗅探网络数据包,请给我一些提示或方向,以便我能够实现.

c windows network-programming

0
推荐指数
1
解决办法
443
查看次数

PHP PDO fetch返回一个数组?

$GetUid = $dbConnect->prepare("SELECT UID FROM users WHERE username = :username");
$GetUid->execute($RegisterData3);
$UserID = $GetUid->fetch();
Run Code Online (Sandbox Code Playgroud)

为什么它返回数组而不是字符串?

var_dump('$ UserID')说

array
  'UID' => string '45' (length=2)
  0 => string '45' (length=2)
Run Code Online (Sandbox Code Playgroud)

它应该是

array
  'UID' => string '45' (length=2)
Run Code Online (Sandbox Code Playgroud)

更新*0怎么样?它来自哪里?谢谢你的回复.

php mysql arrays pdo

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

Ajax帖子之间的会话状态丢失了吗?

我有一个asp.net登录页面,该页面在初始化时会设置一些会话变量。当用户单击登录时,将发出AJAX请求,该请求将验证用户并设置其他会话变量,并将结果返回给客户端。然后根据登录结果重定向客户端。在重定向的页面中,我可以访问初始化登录页面时(即登录之前)设置的会话变量,但是在登录验证期间(ajax调用的一部分)设置的会话变量不存在。

这是预期的行为吗?为什么一个ajax调用会生成一个新会话,从而导致数据丢失?

谢谢

asp.net

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