我已经在我们的内联网上运行了几个星期的asp.net网站.我收到了来自我的application_error电子邮件发送方法的电子邮件,其中包含未处理的异常.
这是(我已经清理了一些路径以使其更好地显示)
例外:对象引用未设置为对象的实例.堆栈跟踪:位于System.Collections.Generic.Dictionary`2.Insert(TKey键,TValue值,布尔加法)的System.Collections.Generic.Dictionary`2.Add(TKey键,TValue值)位于TimesheetDomain.DataMappers.StaffMemberData TimesheetDomain\DataMappers\StaffMemberData.cs中的.ReadStaff(SqlDataReader reader):第362行
在TimesheetDomain\DataMappers\StaffMemberData.cs中的TimesheetDomain.DataMappers.StaffMemberData.GetStaffMember(String name):第401行
在TimesheetDomain\ServiceLayer\TimesheetManager.cs中的TimesheetDomain.ServiceLayer.TimesheetManager.GetUserFromName(String name):第199行
位于\ App_Code\UserVerification.cs中的UserVerification.GetCurrentUser():位于\ WebTimesheets\WebTimesheets.master.cs中的WebTimesheets.OnInit(EventArgs e)第29行:第159行
System.Web.UI.Page.ProcessRequestMain上的System.Web.UI.Control.InitRecursive(Control namingContainer)中的System.Web.UI.Control.InitRecursive(Control namingContainer)(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)
基本上它看起来像我的ReadStaff方法错误,它读取数据读取器来构建人员成员对象.这是一些代码:
while (reader != null && reader.Read())
{
StaffMember newMember = null;
string firstName = reader["FirstName"].ToString();
string lastName = reader["LastName"].ToString();
int staffID = (int)reader["StaffID"];
int employSection = (int)reader["EmploySection"];
StaffType employType = (StaffType)employSection;
string emailAddress = reader["EmailInt"].ToString();
int employCode = (int)reader["ibbwid"];
//check if they are an admin staff member
if (IsAdminStaff(employType))
{
newMember = new AdminOfficer(firstName, lastName, employType, staffID, emailAddress, employCode);
}
else …Run Code Online (Sandbox Code Playgroud) 我花了很多时间试图找到在Node.JS中创建swagger文档的解决方案.主库是swagger-node,在其中创建一个swagger yaml文件,然后将控制器添加到它.它会自动在您的应用中提供swagger ui文档,并根据您在yaml中指定的模型对请求和响应进行验证.
这很整洁,但是我要求我希望明确能够返回或接受某些字段null作为值,例如:
{
id: 123,
description: "string",
date_sent: null
}
Run Code Online (Sandbox Code Playgroud)
我不想删除date_sent密钥,我想明确地将其声明为null.
swagger规范不支持anyOfJSON模式通常如何做到这一点我相信.
我想知道是否有解决方法?也许某些库可用于具有x-nullable可以添加的供应商特定标志的节点,或者某种方式指定我的非必需字段应该都可以为空.
我是否必须自己写一些带有我的swagger文件的东西,然后在验证器中间件运行之前修改它,或者是否有某些可以建议的解决方法?
我在WPF中有一个数据网格,我绑定到一个对象.
我有一个DataGridCheckBoxColumn,我希望用户能够通过并勾选他们想要的那些.问题是他们必须点击两次,一次选择然后再次检查/取消选中.你究竟怎么把它关掉,我一直在寻找方法来寻找答案.datagrid具有SelectionMode和SelectionUnit属性 - 两者都不接受'none'或'go away'
任何帮助表示赞赏!我的代码在下面供参考
<my:DataGrid Margin="15" Name="dgPreview"
AutoGenerateColumns="False" CanUserSortColumns="True"
CanUserDeleteRows="True"
Background="White"
ColumnHeaderHeight="20"
VerticalScrollBarVisibility="Visible"
RowDetailsVisibilityMode="Visible"
>
<my:DataGrid.Columns>
<my:DataGridCheckBoxColumn MinWidth="50" Width="Auto" Header="Include" Binding="{Binding Include}" />
<my:DataGridTextColumn MinWidth="50" Width="Auto" Header="Override #" Binding="{Binding OverrideNumber}" />
<my:DataGridTextColumn MinWidth="220" Width="*" Header="Name" Binding="{Binding Name}" />
<my:DataGridTextColumn MinWidth="50" Width="Auto" IsReadOnly="True" Header="Preview" Binding="{Binding Preview}" />
</my:DataGrid.Columns>
</my:DataGrid>
Run Code Online (Sandbox Code Playgroud) 每当通过Knockout.JS更新DOM时,我需要运行一个jquery ui位代码.我意识到这可以使用自定义绑定来完成,但这似乎与特定的视图模型有关,我想全局地这样做,所以每当它发生在它触发的任何viewmodel上时?
假设我总是希望在所有带有'needsdate'类的文本框上使用JQuery日期选择器,而不是将其添加到我的每个视图模型中,如果我可以在全局范围内完成它将会很棒.
这可能吗?
我刚刚开始使用postharp/AOP.我想为C#做一些工具来跟踪我为一些软件编写的一些插件的用法.
我正在尝试使用OnMethodBoundaryAspect类来记录调用方法时某些参数的值.这些参数是外部DLL中引用的类型.
当我将我的属性添加到方法时,项目将无法生成,我收到以下错误
错误2未处理的异常(2.0.5.1204,64位,CLR 2.0,发布):PostSharp.CodeModel.AssemblyLoadException:加载程序集"C:\ Program Files\Autodesk\Revit Structure 2011\Program\RevitAPI.dll"时出错:可能不加载文件或程序集'revitapi,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = null'或其依赖项之一.不支持操作.(HRESULT异常:0x80131515)
REvitAPI.dll是包含类型的文件.我还测试过只是将属性添加到项目中但未将其应用于任何方法,这也会导致错误.所以看起来它与方法参数类型本身无关,而只是存在这个DLL.
有没有人遇到过这个问题,或者有人能指出我在哪里获得更多信息的正确方向?
我有一个WPF列表框,其中添加了复选框,目前它看起来像这样:

要选择所有不同的项目,我必须逐个单击每个复选框,或者选择全部(我有一个单独的按钮).但如果我只想选择一半,那就太痛苦了.
我希望能够做的是单击一个,按住shift,单击另一个,然后单击其中一个旁边的复选框以切换所有选定的复选框.我认为Windows Forms允许这很容易,但我不确定在WPF中该怎么做?目前,我已将其设置为仅允许一次选择一个(选择意味着什么,其全部都与检查有关).
理想情况下我也有它所以选择一些东西检查它(即,而不是必须选择小复选框,你可以点击单词)但我认为这可能很难用我的shift +选择的东西.
<Window.Resources>
<DataTemplate x:Key="ListBoxItemTemplate" >
<WrapPanel>
<CheckBox Focusable="False" IsChecked="{Binding Selected}" VerticalAlignment="Center" />
<ContentPresenter Content="{Binding Name, Mode=OneTime}" Margin="2,0" />
</WrapPanel>
</DataTemplate>
</Window.Resources>
<ListBox Margin="10" HorizontalAlignment="Stretch" Name="lbSheets"
VerticalAlignment="Stretch" Width="Auto" Grid.Row="1" MinWidth="321"
MinHeight="40" HorizontalContentAlignment="Left"
ItemTemplate="{StaticResource ListBoxItemTemplate}" VerticalContentAlignment="Top" Background="#FFDCEBEE" SelectionMode="Single">
</ListBox>
Run Code Online (Sandbox Code Playgroud)
我希望这一切都有道理 - 在WPF中执行此操作的最佳方法是什么?
我有一个mapkit应用程序在地图上放置注释,当你按下它们时,它会显示带有title属性的标注.
这工作正常,但用户无法关闭它们.他们保持开放,直到他们点击另一个注释.我不能认为用户可以在地图上点击其他地方(或再次点击注释)关闭它吗?
我有一种感觉这是默认设置,所以我正在做的事情就是填充它?我有一个手势识别器,我用它来检测一些地图点击
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(handleTap:)];
tap.numberOfTapsRequired = 1;
[self.mapView addGestureRecognizer: tap];
Run Code Online (Sandbox Code Playgroud)
这解雇了这个:
- (void)handleTap:(UITapGestureRecognizer *)sender {
if (sender.state == UIGestureRecognizerStateEnded) {
CGPoint tapPoint = [sender locationInView:sender.view.superview];
CLLocationCoordinate2D coordinate = [self.mapView convertPoint: tapPoint toCoordinateFromView: self.mapView];
if (pitStopMode && !pitStopMade){
pitStopMade = YES;
InfoAnnotation *annotation = [[InfoAnnotation alloc]
initNewPitstopWithCoordinate:coordinate];
NSLog(@" Created Pit Stop");
annotation.draggable = NO;
//place it on the map
[self.mapView addAnnotation: annotation];
self.instructionLabel.text = @"Tap button again to remove";
annotation.creatorId = self.localUser.deviceId;
//send it to …Run Code Online (Sandbox Code Playgroud) 在刚刚使用ICriteria之后,我刚开始在NHibernate 3中使用LINQ和NHibernate.
这是一个示例查询:
ISession session = NHibernateSessionManager.Instance.GetSession();
var results = from project in session.Query<Project>()
where project.ProjectState == ProjectState.Archive
orderby project.ProjectNumber
select project;
return results.ToList();
Run Code Online (Sandbox Code Playgroud)
如何设置缓存?我看了一下,其他问题似乎使用了不同的(可能是过时的?)语法,或者我做错了...
我是ASP.NET MVC的新手,我正在努力找到最好的方法来做到这一点.这可能很简单,但我只是想做正确的事情所以我想我会问.
让我们说我的模型是这样的:
任务 - ID,描述,AssignedStaffMember
StaffMember - Id,FirstName,LastName
在我看来,我想创建一个新任务.我创建了一个强类型的Razor视图,并且可以使用EditorFor为Description创建文本框但是AssignedStaffMember呢?
我想要一个当前所有员工的下拉列表,并且可以选择一个,然后将其提交给一个动作方法
NewTask(string description, StaffMember assignedStaffMember)
,或者我可以为staffId而不是StaffMember对象提供一个int,并在动作中查找它方法.
做这个的最好方式是什么?我需要去数据库以获取员工名单,所以这就是我的想法:
对员工下拉列表进行部分查看,将使用几次并用于@Html.Action("ListStaff", "Staff")调用它.然后动作方法有
public ActionResult ListStaff()
{
IEnumerable<StaffMember> model = _serviceLayer.GetAllStaff();
return PartialView(model);
}
Run Code Online (Sandbox Code Playgroud)
但是我不确定它如何与模型绑定一起工作,我的理解是它必须有正确的名称才能提交表单,我需要将名称传递给局部视图以放置元素我猜?
不要让它调用控制器来获取工作人员,而是创建一个包含我的Task和IEnumerable possibleStaff集合的ViewModel.可能会将此信息发送到局部视图.
一个Html助手?
编辑器可以以某种方式使用?
哪一个(或者更多)最好?以及如何进行模型绑定?
这令我感到困惑.我正在使用PetaPoco从数据库中检索某些值,然后循环它们并检索一个值以分配给每个对象的一个属性.
public IEnumerable<RetreaveIndex> FillResults(IEnumerable<RetreaveIndex> results)
{
//add the associated users
foreach (RetreaveIndex index in results)
{
index.AssociatedUsers = _registeredUserDao.GetUsersByIndex(index).ToList();
}
return results;
}
Run Code Online (Sandbox Code Playgroud)
当我在foreach循环期间设置断点时,正确设置了AssociatedUsers属性.

但是在循环结束的断点处,它没有保存它?

我很困惑,不应该将Index作为对正在被修改的内存中的位置的引用吗?毕竟这是一个对象.我在这里错过了什么?
c# ×6
.net ×2
wpf ×2
aop ×1
asp.net ×1
asp.net-mvc ×1
caching ×1
datagrid ×1
events ×1
foreach ×1
ios ×1
javascript ×1
knockout.js ×1
mapkit ×1
nhibernate ×1
node.js ×1
objective-c ×1
postsharp ×1
razor ×1
swagger ×1
swagger-ui ×1
wpftoolkit ×1
xaml ×1