这更像是一个很好的练习题.我想提供不同的通用库,如Logging,caching等.有很多第三方库,如MS企业库,log4Net,NCache等.
我想知道它是一个很好的做法,直接使用它们或在每个服务上创建包装器并使用DI在代码中注入该服务.
问候
如何将DbCommand参数复制到另一个DbCommand,我想要一个DbCommand与我的上一个参数相同的新参数DbCommand.但现在使用不同的sql字符串.
我正在使用Unity中可用的不同LifetimeManagers,并想知道我们何时会使用ExternallyControlledLifetimeManager?有人可以给我一个真实的例子吗?MSDN文档说"LifetimeManager 对其托管实例持有弱引用 ".
开发人员如何管理实例以及何时应该去找这样的终身经理?您对如何以及何时使用它的想法对我和其他人来说都很有用.谢谢!
.net asp.net-mvc enterprise-library unity-container enterprise-library-5
我们遇到了一个奇怪的日志问题.我们正在使用Microsoft.Practices.EnterpriseLibrary.Logging库来登录我们的Web应用程序,问题是它写入的日志与当前系统时间相差1小时.
我们的记录器基于这篇文章,我们从不在代码中设置日志条目中的时间.每个日志条目都有一个如下所示的标题:
MainLogSource Information: 0 : Timestamp: 11/04/2011 10:15:32 所以这个时间戳总是比系统时间提前1小时(例如,此条目出现在11:15).
哪里可以问题?谢谢
我正在尝试为企业库5.0的异常处理块创建自定义异常处理程序.据我所知,我需要使用属性"[ConfigurationElementType(typeof(CustomHandlerData))]"启动该类.但是我收到一条错误,指出ConfigurationElementType不是属性类.
有谁知道可能会发生什么?
我得到一个字符串作为输出参数,并需要知道在调用AddOutParameter时为Size参数设置什么.
我知道我可以使用一些巨大的数字,比如int.MaxValue,但想知道最佳实践.
在SQL Server中,该列实际上是uniqueidentifier类型.正在执行的T-SQL语句插入一条记录,然后将一些输出变量设置为新插入记录的ID和GUID.这是我正在使用的实际代码,但变量名称已更改.
database.AddOutParameter(cmd, "@someInt", DbType.Int32, 0);
database.AddOutParameter(cmd, "@someString", DbType.String, 0);
database.ExecuteNonQuery(cmd);
someInt = (int)database.GetParameterValue(cmd, "@someInt");
someString = database.GetParameterValue(cmd, "@someString").ToString();
Run Code Online (Sandbox Code Playgroud)
执行时,我收到以下错误...
System.InvalidOperationException:String [2]:Size属性的大小无效.
所以对我来说很明显,你不能只使用带字符串输出参数的0大小.你可以用Int32输出参数做到这一点,但我猜一个字符串需要一个有效的大小.那么设置尺寸的最佳做法是什么?它可以只是一个巨大的尺寸而不会影响性能吗?我可以将它设置为int.MaxValue或其他什么?这里可以使用任何常量; (没有看到任何String.MaxValue - 你可能会说我是C#的新手,有Java背景).
我应该找出uniqueidentifier列的最大大小,并将大小设置为该值吗?如果我为VARCHAR或NVARCHAR列做同样的事情呢?
我希望框架能够为我做这件事; 我不想为输出的每个字符串指定一个大小.任何人都有任何建议,以获得最佳实践?
我已经阅读了下面的帖子以及MSDN文档,但我还没有找到最佳实践答案.
是否可以指定枚举属性只能有一系列值?
enum Type
{
None,
One,
Two,
Three
}
class Object
{
[AllowedTypes(Type.One,Type.Three)]
Type objType { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
像这样的东西?也许我不知道企业库中的一些验证器?!
泰
我最近尝试在visual studio 2015中安装企业库6.0,但安装程序抛出错误'VSIXInstaller.NoApplicableSKUsException:此扩展不能安装在任何当前安装的产品上'.我无法解决它.
19-Dec-16 9:59:48 AM - Microsoft VSIX Installer
19-Dec-16 9:59:48 AM - -------------------------------------------
19-Dec-16 9:59:48 AM - Initializing Install...
19-Dec-16 9:59:48 AM - Extension Details...
19-Dec-16 9:59:48 AM - Identifier : A42E118F-C41F-47A2-ADB5-04CDEBF8EB90
19-Dec-16 9:59:48 AM - Name : EnterpriseLibrary.Config.v6
19-Dec-16 9:59:48 AM - Author : Microsoft
19-Dec-16 9:59:48 AM - Version : 6.0.1304.1
19-Dec-16 9:59:48 AM - Description : Launches the Microsoft Enterprise Library v6 Configuration Console
19-Dec-16 9:59:48 AM - Locale : en-US
19-Dec-16 9:59:48 AM - …Run Code Online (Sandbox Code Playgroud) installation enterprise-library visual-studio vsix visual-studio-2015
我有问题从oracle获取图像字节数据.reader("image")总是返回0长度.他们的任何解决方法?如果我使用oledb它然后它的工作但不工作Microsoft EnterpriseLibrary.
using (IDataReader reader = ExecuteNonQueryOracle(Query))
{
while (reader.Read) {
dict("image") = reader("image");
}
}
public object ExecuteNonQueryOracle(string Query)
{
using (dbCommand == CurrentDatabase.GetSqlStringCommand(Query)) {
dbCommand.CommandType = CommandType.Text;
return CurrentDatabase.ExecuteReader(dbCommand);
}
}
Run Code Online (Sandbox Code Playgroud) c# ×8
.net ×5
database ×2
asp.net-mvc ×1
dbcommand ×1
enums ×1
installation ×1
logging ×1
oracle ×1
oracle11g ×1
sql-server ×1
validation ×1
vsix ×1