如何创建Context类似于HttpContext对象的全局可访问对象?
我想创建一个自定义类库,我想从网站项目中引用它.在网站项目中,我希望能够在全球范围内调用以下内容:
ClassLibraryName.Context
Run Code Online (Sandbox Code Playgroud)
我不能property直接在我的类库中创建全局,那么应该如何实现呢?(我见过其他应用程序/产品使用这种方法,其中一种是Sitecore,它有一个自定义的Sitecore.Context对象)
这可能是一个"有效"的解决方案吗?
namespace MyLibrary
{
public class Context
{
public static object ContextualObject
{
get;
set;
}
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个在我的本地PC上运行的SQL Server Express 2008 R2实例.
我采取了以下步骤来创建一个新的登录和数据库:





正如您在上一个屏幕截图中看到的那样,有一个用户名 "dbo",它"属于" 登录名 "mylogin".我正在尝试使用以下连接字符串,但它不起作用:
数据源=(本地)\ sqlexpress;初始目录= newdb;用户ID = mylogin;密码= mypass
SQL Server Management Studio中的错误日志表明:
用户'mylogin'登录失败.原因:无法打开显式指定的数据库.[客户:xxx.xxx.x.xx].错误:18456,严重性:14,状态:38
如果我将连接字符串中的用户ID更改为"dbo",则会报告以下错误:
用户'dbo'登录失败.原因:找不到与提供的名称相匹配的登录信息.[客户:xxx.xxx.x.xx].
我现在开始变得非常疯狂.我根本不知道如何访问任何数据库......我的SQL Server实例是否已损坏?
当我尝试从我的ASP.NET应用程序连接时,只会出现此问题.使用SQL Server Management Studio Express连接,使用提到的凭据DOES工作!
asp.net connection-string database-connection sql-server-express
我正在尝试检查对象是否可以使用转换为某种类型IsAssignableFrom.但是我没有得到预期的结果...... 我在这里错过了一些东西吗?
//Works (= casts object)
(SomeDerivedType)factory.GetDerivedObject();
//Fails (= returns false)
typeof(SomeDerivedType).IsAssignableFrom(factory.GetDerivedObject().GetType());
Run Code Online (Sandbox Code Playgroud)
编辑:
上面的例子似乎错了,并没有很好地反映我的问题.
我DerivedType在代码中有一个对象,它被强制转换为BaseType:
BaseType someObject = Factory.GetItem(); //Actual type is DerivedType
Run Code Online (Sandbox Code Playgroud)
我也有一个PropertyType反思:
PropertyInfo someProperty = entity.GetType().GetProperties().First()
Run Code Online (Sandbox Code Playgroud)
我想,以检查是否someObject是分配给(浇注到)PropertyType的someProperty.我怎样才能做到这一点?
我创建了一个包含 2 个项目的简单解决方案。第一个项目(类库)包含一个名为 Container 的自定义控件,它用圆角绘制自己。第二个项目(windows 窗体)是一个测试应用程序。
如果我在第二个项目的主窗体中添加一个 Container 实例,它会很好地显示圆角。此外,当我运行第二个项目时,我可以看到容器。
但是,当我开始移动表单(单击并按住标题栏)时,尤其是当我移动它非常快时,所有的绘图都被弄乱了,一遍又一遍地绘制但没有先清除它的表面...
我可以在 Form1.Move 事件中调用 Container1.Refresh(),但我不想每次都设置它,因为这也意味着我必须在Form1.Resize事件中调用 Container1.Refresh()并且谁知道其他哪个事件.. .
Container(控件)类本身是否有事件,我应该在其中调用 Me.Refresh() 或 Me.Update() 或 Me.Invalidate() ?
供参考(Form1.vb)
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub Form1_Move(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Move
Me.Container1.Refresh()
End Sub
End Class
Run Code Online (Sandbox Code Playgroud)
供参考(Container.vb):
Imports System.Windows.Forms
Imports System.Drawing
Imports System.Drawing.Drawing2D
Public Class Container : Inherits Control
Private _Gp As GraphicsPath
Private Sub Container_Paint(ByVal …Run Code Online (Sandbox Code Playgroud) UPDATE!
建议的答案是不正确的,我的错误.#container DIV应该有"float:left;".请验证Firefox和IE7中的HTML.你可以看到差异!
我不能让一个DIV嵌套使用的z-index显示上方的较高层次的嵌套DIV ...叠加保持在铺设即使底部嵌套DIV具有较高的z-index较低DIV嵌套...这是甚至可能在IE7中?
以下显示Firefox中绿色#overlay上方的蓝色#details,但在IE7中,蓝色#details位于绿色#overlay下方
UPDATE2:价格 :添加"z-index:99;" #container样式使得类.item div出现(在Firefox中,IE搞砸了:无论如何都不能正确显示),而它们应该在叠加下!如果没有#container z-index设置,它会在Firefox中正确显示,但不能在IE中显示....
<html>
<body>
<style type="text/css">
.item {
float:left;width:75px;height:75px;background-color:red;
}
</style>
<div id="main" style="position:relative;">
<!-- this one should overlay everything, except #details -->
<div id="overlay" style="position:absolute;
top:0px;
left:0px;
width:500px;
height:500px;
z-index:1;
background-color:green;"></div>
<div id="container" style="position:relative;float:left;">
<!-- these ones should display UNDER the overlay: so NOT visible -->
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<!-- this one should display above the overlay -->
<div id="details" style="position:absolute;
width:200px;
height:200px; …Run Code Online (Sandbox Code Playgroud) 请检查下面的HTML代码.第3个DIV部分可见,因为它被第2个(具有白色背景)覆盖.到目前为止一切都很好,一切都在IE和Firefox中正确显示.
我打印页面时问题开始.在Firefox中,它打印在页面上显示.在Internet Explorer 8中,它以某种方式完全打印所有DIVS.它看起来好像在第二个DIV(或全部)上应用了不透明度滤镜,这使第三个DIV完全可见......
我为页面的打印版本创建了一个带有新内容(在javascript中)的白色叠加层.由于上述问题,它无法正常工作,因为叠加层下方的所有内容也会打印出来......
为什么IE8会打印这种隐形内容?有解决方案吗?
<html>
<head>
</head>
<body>
<div style="background-color:#999999;position:relative;border:solid 1px black;width:500px;height:500px;">
<div style="position:absolute;width:300px;height:200px;top:5px;left:5px;border:dashed 1px #cccccc;z-index:99;background-color:white;"></div>
<div style="position:absolute;width:100px;height:200px;top:100px;left:50px;border:dashed 5px #cccccc;z-index:98;background-color:white;"></div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用jQuery提交我的Ajax表单.但是,调用submit()函数会导致整个页面刷新.它应该只执行表单的onSubmit部分(返回false以便页面不应刷新).
<%Ajax.BeginForm("AllocateAndUpdateMech",
New With {.Controller = "Planning",
.Id = Model.Id},
New AjaxOptions With {
.LoadingElementId = "loading",
.UpdateTargetId = Model.Id & "_alloc"},
New With {.id = "allocate_" & Model.Id & "_" & item.UserId}
)%>
<%Html.Hidden("mechId", item.UserId)%>
<a href="javascript:void(0);" onclick="$('#<%="allocate_" & Model.Id & "_" & item.UserId %>').submit();">Allocate: <%=item.UserName%></a>
<%Html.EndForm()%>
Run Code Online (Sandbox Code Playgroud) 我有一个URL.有可能以某种方式获得控制器和动作名称以及路由值吗?(通常由.NET MVC框架基于global.asax中的定义生成)
如何NullReferenceException在以下场景中获得?
Dim langs As IEnumerable(Of SomeCustomObject) = //some LINQ query
If langs Is Nothing Then Return Nothing
If langs.Count = 1 Then //NullReferenceException here
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?Debug显示这langs实际上只是一个没有任何结果的LINQ queryresult ...
我正在创建一个强类型帮助器(参考:SO问题).如下面的代码中的'评论',是否有可能以某种方式从表达的属性中获取值,从而绕过可选selectedValue参数?
<Extension()> _
Public Function DatePickerFor(Of TModel As Class, TProperty)(ByVal htmlHelper As HtmlHelper(Of TModel), ByVal expression As Expression(Of Func(Of TModel, TProperty)), Optional ByVal selectedValue As Nullable(Of Date) = Nothing) As MvcHtmlString
Dim inputName = ExpressionHelper.GetExpressionText(expression)
Dim inputValue = selectedValue
//Something like this possible?
//inputValue = ExpressionHelper.GetExpressionValue(expression)
Return DatePicker(htmlHelper, inputName, inputValue)
End Function
Run Code Online (Sandbox Code Playgroud) asp.net-mvc ×3
asp.net ×2
css ×2
html ×2
vb.net ×2
c# ×1
controls ×1
debugging ×1
form-submit ×1
gdi+ ×1
inheritance ×1
jquery ×1
linq ×1
printing ×1
reflection ×1
routes ×1
z-index ×1