我的网站使用的是企业库v 5.0.主要是DAAB.一些函数,如executioncalar,executionataset正在按预期工作.当我开始使用读者时会出现问题
我的include类中有这个函数:
Public Function AssignedDepartmentDetail(ByVal Did As Integer) As SqlDataReader
Dim reader As SqlDataReader
Dim Command As SqlCommand = db.GetSqlStringCommand("select seomthing from somewhere where something = @did")
db.AddInParameter(Command, "@did", Data.DbType.Int32, Did)
reader = db.ExecuteReader(Command)
reader.Read()
Return reader
End Function
Run Code Online (Sandbox Code Playgroud)
这是从我的aspx.vb中调用的,如下所示:
reader = includes.AssignedDepartmentDetail(Did)
If reader.HasRows Then
TheModule = reader("templatefilename")
PageID = reader("id")
Else
TheModule = "#"
End If
Run Code Online (Sandbox Code Playgroud)
这会在db.ExecuteReader行上出现以下错误:
无法将类型为"Microsoft.Practices.EnterpriseLibrary.Data.RefCountingDataReader"的对象强制转换为"System.Data.SqlClient.SqlDataReader".
任何人都可以了解我如何开展这项工作.通过entlib与读者打交道时,我是否会遇到问题?
我有一个在一些控制器实例中注册注入的抽象工厂.我可以注册那个抽象工厂并将其用作注塑工厂吗?
这就是我所拥有的:
public interface ILevelFactory
{
Levels Create();
}
.RegisterType<ILevelFactory, LevelFactory>()
.RegisterType<Levels>(new InjectionFactory((c) => StaticLevelFactory.GetLevels()))
Run Code Online (Sandbox Code Playgroud)
期望的情况:
.RegisterType<ILevelFactory, LevelFactory>()
.RegisterType<Levels>(*** look up and use ILevelFactory ***)
Run Code Online (Sandbox Code Playgroud)
简而言之,我想摆脱StaticLevelFactory.
c# enterprise-library dependency-injection unity-container abstract-factory
我们计划移动使用企业库4.1的遗留应用程序,该应用程序在.Net 4.0 Web应用程序中使用.Net 3.5.
我们想知道这会导致任何性能问题吗?.net 3.5代码是否会在不同的应用程序池中运行?
我最近安装了Enterprise library 5.0但我找不到"Microsoft.Practices.ObjectBuilder2.dll".我正在研究CAL Tutorial,我将需要这个dll作为参考.
谁有人回答这个问题?
谢谢,Omky
我有一个使用Enterprise Library.Logging 5,.NET Framework 4.0 Client Profile的WPF应用程序
我使用数据库逻辑记录.还要添加对3个dll的引用以进行投影.
Microsoft.Practices.EnterpriseLibrary.Logging.dll
Microsoft.Practices.EnterpriseLibrary.Logging.Database.dll
Microsoft.Practices.EnterpriseLibrary.Data.dll
Run Code Online (Sandbox Code Playgroud)
logEntry.Write(log)通过此消息我有1个运行时错误:
Invalid TraceListenerData type in configuration 'listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Database.Configuration.FormattedDatabaseTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging.Database, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"'
Run Code Online (Sandbox Code Playgroud)
我的app.config是:
<loggingConfiguration name="" tracingEnabled="true" defaultCategory="General" logWarningsWhenNoCategoriesMatch="false">
<listeners>
<add name="Event Log Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FormattedEventLogTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.FormattedEventLogTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
source="Enterprise Library Logging" formatter="Text Formatter"
log="" machineName="." traceOutputOptions="None" />
<add name="Database Trace Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.Database.FormattedDatabaseTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging.Database, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Database.Configuration.FormattedDatabaseTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging.Database, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
databaseInstanceName="Logging" writeLogStoredProcName="WriteLog"
addCategoryStoredProcName="AddCategory" formatter="Text Formatter"
traceOutputOptions="LogicalOperationStack, DateTime, Timestamp" />
</listeners>
<formatters>
<add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, …Run Code Online (Sandbox Code Playgroud) .net configuration logging enterprise-library enterprise-library-5
我正面临这个问题.我有一个存储过程,当我执行它时返回6行.
但是当我使用时检索应用程序中的行时ExecuteReader,它只返回5行.为什么会失去一排?
我的存储过程包含5个union语句,这些语句从单个表中填充:
dbase.AddInParameter(cmd, "@LoginUser", DbType.String, UserID);
try
{
using (IDataReader dr = dbase.ExecuteReader(cmd))
if (dr.Read())
{
dt = new DataTable("DashBoard");
dt.Load(dr);
}
}
Run Code Online (Sandbox Code Playgroud)
dbase是我的数据库对象.并且cmd是SqlCommand用来调用存储过程.
UserID 参数正在传递
存储过程代码是:
ALTER PROCEDURE [dbo].[USP_ViewAdminDashBoard](@LoginUser varchar(75))
-- Add the parameters for the stored procedure here
AS
BEGIN
SET NOCOUNT ON;
SET DATEFORMAT DMY;
DECLARE @LastLoginDate as DateTime
Select @LastLoginDate = dbo.UDF_GetLastLoginByUser(@LoginUser)
Select 'Last Login Date', convert(varchar(12),@LastLoginDate,105)
Union
Select 'Nos. Records pending for Upload' as Title, convert(varchar(5),COUNT(s.BatchID)) …Run Code Online (Sandbox Code Playgroud) 我正在寻找一些关于伐木的建议.我编写了一个Logger 内部使用Microsoft Enterprise Library 5.0的包装器.目前,它使我们能够以这种方式登录:
Logger.Error(LogCategory.Server, "Some message with some state {0}", state);
Run Code Online (Sandbox Code Playgroud)
我面临的问题是EventViewer中的每个日志似乎都是无关的,即使它们中的一些以某种方式相关,例如它们都来自处理来自特定客户端的请求.
让我详细说明这个问题.假设我正在处理一个需要同时处理来自多个客户端的请求的服务,每个服务都将不同的参数集传递给服务方法.很少有参数可用于识别请求,例如哪个客户端使用哪些唯一可识别的参数进行何种请求等.说这些参数是(调用上下文信息):
现在服务开始处理请求,一个接一个地做(比如工作流).在这个过程中,我正在记录本地1条消息,例如"找不到文件"或"在DB中找不到条目",但我不想手动记录上述信息(上下文信息)与每个日志,而是我想要记录器每次记录本地消息时自动记录它们:
Logger.Error(LogCategory.Server, "requested file not found");
Run Code Online (Sandbox Code Playgroud)
我希望上面的调用记录上下文信息以及消息"未找到请求的文件",以便我可以将消息与其上下文相关联.
问题是,我应该如何设计一个自动记录上下文的记录器包装器?我希望它足够灵活,以便我可以在服务处理请求的过程中添加更具体的上下文信息,因为在请求开始时可能无法获得所有重要信息!
我也想让它可配置,所以我可以记录本地消息而不记录上下文信息,因为当一切正常时它们不需要它们.:-)
1.通过本地消息,我指的是更具体,本地性质的消息.相比之下,我会说,上下文信息是全局消息,因为它们对处理请求的整个流程有意义.
我试图将我的企业库从4.0.0.0升级到5.0.5.0
我知道安全的方式是使用NuGet.
我用它,但得到这个错误:
为cachingConfiguration创建配置节处理程序时出错:无法加载文件或程序集"Microsoft.Practices.EnterpriseLibrary.Caching,Version = 5.0.505.0,Culture = neutral,PublicKeyToken = null"或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)
Configuration Error
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.
Parser Error Message: An error occurred creating the configuration section handler for cachingConfiguration: Could not load file or assembly 'Microsoft.Practices.EnterpriseLibrary.Caching, Version=5.0.505.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. …Run Code Online (Sandbox Code Playgroud) 对于我们的新项目(使用Visual Studio 2017和.net Framework 4.6),已决定使用Enterprise Library 6.0进行日志记录,异常处理和数据库访问.我在互联网上有很多关于如何使用它的资源/材料.我的问题是,
请帮我找出并决定.
升级企业库版本5.0到6.0时,我得到EnterpriseLibraryCoreExtension未定义错误.
码:
container.AddNewExtension(Of EnterpriseLibraryCoreExtension)
Run Code Online (Sandbox Code Playgroud)
当我用Google搜索时,我得到了以下解决方案.有谁能提供任何实例来实现以下解决方案?
Enterprise Library块不再使用Unity容器来解析实例.您应该从代码中删除对Unity容器的AddNewExtension方法的所有调用.如果您的应用程序当前从容器中解析Enterprise Library对象,则必须在Unity容器中手动注册所需类型,或者修改应用程序以使用块中的静态外观来配置和检索应用程序使用的Enterprise Library对象.