- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个服务层公开了一些方法,这些方法在我的 asp.net 应用程序的 ObjectDataSource 中使用。
服务类的构造函数有一个参数,只是一个int,用于跟踪当前登录的用户:
public ProjectService(int userId)
{
_userId = userId;
pb = new ProjectBusiness(_userId);
}
但是,我的服务在没有参数的情况下工作正常。自从我添加它后,我遇到了:
No parameterless constructor defined for this object.
有没有办法将此参数从对象数据源传递到我的服务层?或者也许有更好的方法来处理我的服务(然后是业务和数据层),知道当前存储在 Session[] 中的 UserID?
我发现的解决方法是在代码中声明参数:
protected void ChargeRatesODS_ObjectCreating(object sender, ObjectDataSourceEventArgs e)
{
var service = new ResourceService(Common.CurrentUserId());
e.ObjectInstance = service;
}
这是唯一的方法,也是最佳实践吗,那么我可以坚持下去,但是..这是处理参数的方法吗?我希望构造函数有一个参数,以便强制开发人员传入有效的 UserID,主要是出于日志记录和角色管理的原因。
最佳答案
我在这里发布我的解决方案,因为它最初出现在我的搜索中。我们的项目使用基于请求的数据采用不同类型的通用服务类,并具有类似于此的签名,
public class ReportDataService<T, U>
并且构造函数有一个 session ID,因此我们可以为每个 session 保留一些总计,如下所示。
public ReportDataService(string sessionGuid)
所以它在页面中工作的唯一方法是使用类型激活器,因此它同时满足不同的泛型类型和不同的构造函数参数(下面的代码在 .aspx.cs 中)。
void DataSource_ObjectCreating(object sender, ObjectDataSourceEventArgs e)
{
var myType = ((ObjectDataSourceView)sender).TypeName;
var newObj = Activator.CreateInstance( Type.GetType( myType, false), new object[] { sessionId });
e.ObjectInstance = newObj;
}
关于c# - ObjectDataSource 使用带有构造函数的服务类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17758449/
我有一个启用编辑的 GridView ,所以当我编辑用户时出现错误: ObjectDataSource 'ObjectDataSource1' 找不到具有参数的非泛型方法 'Update': 我还使用
在我的 C# .NET Web 应用程序中,我有一个绑定(bind)到 ObjectDataSource 的 GridView。此 ObjectDataSource 使用我的 App_Code 文件夹
我正在开发 asp.net 3.5 项目。 当我想用 DetailsView 插入时,出现了这个错误: 错误:ObjectDataSource“ObjectDataSource2”找不到具有参数的非通
我有这个 ASP.NET 代码: 我的 DAL 代码: public DataTable GetBrokers(bool? hasImport=null) { SqlCommand cm
我正在使用 ObjectDataSource 来排序/分页/过滤,如下所示: 使用 ObjectDataSou
我有一个服务层公开了一些方法,这些方法在我的 asp.net 应用程序的 ObjectDataSource 中使用。 服务类的构造函数有一个参数,只是一个int,用于跟踪当前登录的用户: public
我的 ObjectDataSource 是这样实例化的: 选择、插入、更新方法如您所愿;选择所有数据,插入数据和更新数据。我的问题是,有没有办法可以分配另一种方法,例如第二个选择选择不同的数据或者可
我正在使用 visual studio 2008,我在 AppCode 文件夹中包含了一个类,并希望在 ObjectDataSource 中使用它的函数。 最佳答案 在 aspx 中 在 .cs
前台代码: 复制代码代码如下: <asp:GridView ID="viewIShow" runat="server"
我正在使用 ObjectDataSource 来执行 CRUD 操作。出于某种原因,我收到“ObjectDataSource‘ObjectDataSource1’没有要插入的值。检查‘values’字
如果网页需要一些数据,为什么不让 SQLDataSource 调用存储过程呢?为什么要使用 ObjectDataSource 调用业务对象,然后再调用存储过程?我知道基于 .net 框架构建的其他应用
我正在使用 GridView 处理 ASP.NET 页面和 ObjectDataSource . 我想针对我的业务层中的一个类(用 DataObject() 装饰)配置 ObjectDataSourc
我正在尝试将此绑定(bind)到gridview .. var source = from p in allComments select new { p.Img,
我有一个 GridView ,它绑定(bind)到一个从学生类型中选择数据的对象数据源 public class student { int id; string name; int
在我的公司中,很少有员工使用 ObjectDataSource。示例片段是: Sele
我正在将旧网站更新为更现代的外观。他们希望能够 CRUD 他们的数据表,这样用户就可以轻松地编辑/更新/删除内容,而无需转到特殊页面。 为此,我为他们的旧方法设置了一个 ObjectDataSourc
我有一个文本框,其值存储 ValidFrom 表单值: 31.01.2012 文化设置为: 在 web.config 中。 现在,ObjectDataSource 更新方法: public
如果下拉列表在范围内,我如何设置下拉列表的选定值Gridview 和下拉列表在编辑时由 objectdatasource 填充按钮被点击? 我的应用发生了什么情况是下拉列表被填充但第一项始终显示为选定
我无法从我的 C# 代码中找到简单问题的答案:如何手动清除 ObjectDataSource 缓存。在带有一些 DevExpress 组件的 Visual Studio 2010 中将 ASP.NET
我正在尝试使用启用分页的 ObjectDataSource。这需要我使用 SelectCountMethod(这样网格才能知道有多少页)。我的 ObjectDataSource 看起来像这样:
我是一名优秀的程序员,十分优秀!