我有一个数据库类,其中包含以下方法:
方法的结果存储在私有数据集或数据表中.这些对象被定义为getter.
大约有10个类使用Database类.每个类都创建一个Database类的对象.现在我正在考虑使Database类保持静态.这是一个好主意吗?如果是这样,为什么?不,为什么不呢?
当用户登录我的应用程序时,我想在整个应用程序中显示他的名字.我正在使用asp.net MVC框架.但我不想要的是必须在每个控制器中添加如下内容:
ViewData["User"] = Session["User"];
Run Code Online (Sandbox Code Playgroud)
这是因为你可能不会重复自己.(我相信这是OO编程的DRY [不要重复自己]原则.)ViewData ["User"]在我的主页上.所以我的问题是,在一个地方处理我的ViewData ["用户"]的简洁方法是什么?
我正在创建一个用户控件.用户控件是一个div,我想向它添加一个click事件.
编辑:
对其具有此控件的页面必须处理此事件.
我怎样才能做到这一点?
在我的代码中,我有一个带有多个catch语句的方法,它们执行所有相同的语句.我不确定这是实现这个的正确方法.你会怎么做?
public void LoadControl(ControlDestination controlDestination, string filename, object parameter)
{
try
{
// Get filename with extension
string file = GetControlFileName(filename);
// Check file exists
if (!File.Exists(file))
throw new FileNotFoundException();
// Load control from file
Control control = LoadControl(filename);
// Check control extends BaseForm
if (control is BaseForm)
{
// Set current application on user control
((BaseForm)control).CurrentApplication = this;
((BaseForm)control).Parameter = parameter;
// Set web user control id
control.ID = filename;
Panel currentPanel = null;
switch (controlDestination)
{
case ControlDestination.Base: …Run Code Online (Sandbox Code Playgroud) 我总是在努力放置try catch块.例如,我有一个数据库类,其方法接受两个参数.FindObject(字符串where,string order).此方法使用指定的where和order字符串执行sql查询.
在类中我有一个名为IsUsed的属性,这个属性如下所示:
public bool IsUsed
{
get
{
ClassA a = new ClassA();
Collection<ClassA> myCollection = a.FindObject("Id = 1","");
if(..) // etc
}
}
Run Code Online (Sandbox Code Playgroud)
这种方法是否聪明并不重要,我只想知道在执行sql查询时出现try catch的位置.
我应该在哪里放置try catch,以便我可以通知用户出了什么问题?
我们可以通过两种方式在 web.config 中设置最大 json 长度:
1:以字节为单位
<configuration>
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="500000">
</jsonSerialization>
</webServices>
</scripting>
</system.web.extensions>
</configuration>
Run Code Online (Sandbox Code Playgroud)
2:在应用程序设置中。json 对象中的最大条目(本例为 150,000)
<add key="aspnet:MaxJsonDeserializerMembers" value="150000" />
Run Code Online (Sandbox Code Playgroud)
我想知道,什么时候使用哪个?我总是需要两者吗?这两个人是以某种方式相互合作的吗?
我创建了一个Azure AD应用程序和一个Web App.Azure AD应用程序使用AAD身份验证.这很好用.当我转到我的URL而我未经过身份验证时,我必须输入我的凭据.当我输入凭据时,我会转发到我的申请表.
但问题就来了.我如何退出.我发现了这个问题,我想实现选项2:不使用代码注销,而是使用Azure AD提供的链接.关键是,我不知道在哪里配置它.他说
添加一些用于登录和注销的特定链接
但是哪里?在Azure中的哪个位置以及在哪个门户(新旧)中可以配置它?他还提供了一个示例链接,但我不明白这个示例(我是Azure的新手).
我在另一个项目(projA)中制作了一个程序集.现在我想在另一个项目(projB)中导入这个dll.我怎样才能做到这一点?这就是我尝试过的(在projB中).
1将dll放在与我的项目相同的目录中.(bin目录)
2在web.config中:
<assemblies>
<add assembly="projA, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</assemblies>
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
无法加载文件或程序集'projA,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)
编辑:
关键是最终必须动态添加程序集引用
编辑2:
程序集(和名称空间)的名称存储在数据库中.物理组件(dll)在projB中添加(通过安装).现在,projB中的代码必须从数据库中读取程序集名称,然后添加对安装添加的dll的引用.
当我运行我的应用程序时,在一个分析器中,我看到它使用了大约80MB的内存(总提交字节数,性能计数器).但是当我查看分配内存的大小时,它超过400MB!
所以我的问题是,为什么.NET为我的应用程序保留了这么多内存?这是正常的吗?
我在循环使用对象列表时创建(父)行ng-repeat.我还创建了一个隐藏的行.可见行包含soms基本数据,隐藏行(detail)包含所有数据.我希望在单击父行时可以看到详细信息行.而且我只想在细节行变得可见时加载数据.此外,一旦已加载行的详细信息,我不想再次访问服务器.
我为详细信息视图创建了一个部分,所以我的代码如下所示:
<div ng-include="'/Customer/View'"></div>
Run Code Online (Sandbox Code Playgroud)
当然我可以找到/Customer/View/12,但随后所有数据都被加载,即使没有请求也是如此.
那么,实现这个目标的方法是什么?有人能指出我正确的方向吗?
c# ×6
asp.net ×3
.net ×2
asp.net-mvc ×2
angular-ui ×1
angularjs ×1
assemblies ×1
azure ×1
data-access ×1
database ×1
exception ×1
json ×1
memory ×1
static ×1
viewdata ×1
web-config ×1
winforms ×1