try {
// code which throws exception.
} catch (SQLException sqlex) {
logger.error("Custom message", sqlex);
**throw new CustomApplicationException("Custom message", sqlex);**
}
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,在粗体线上,我收到 PMD 错误,因为“catch 块中引发了新异常,原始堆栈跟踪可能会丢失”。我知道这个问题已经被问过很多次了,也有很多在线参考资料可供参考。我已经尝试了所有可能的方法。但我仍然无法消除这个 PMD 错误。请让我知道这段代码有什么问题。提前致谢!
我正在运行以下代码
/*Fetchinch Last CustID from custMaster*/
int ID = 0;
try
{
con.Open();
da = new OleDbDataAdapter("select max(Id) from custMaster",con);
DataSet ds = new DataSet();
da.Fill(ds);
for(int i=0;i<ds.Tables[0].Rows.Count;i++)
ID=int.Parse(ds.Tables[0].Rows[i][0].ToString());
con.Close();
}
catch (Exception ex) {}
finally
{
con.Close();
}
Run Code Online (Sandbox Code Playgroud)
我从try块的第一个语句中调试调试器,并在我尝试打开连接时发现错误即将发生.错误文字:
多步OLE DB操作生成错误.检查每个OLE DB状态值(如果可用).没有工作.
连接字符串是:
"Provider = Microsoft.Jet.OLEDB.4.0; DataSource = E:\ NewSoft\Database\TestApp.accdb; Integrated Security = SSPI"
我正在使用oledb连接.
为什么重定向网址必须完全匹配?域级别的匹配是否足以获得适当的安全性?
如果我有数百条路径怎么办?
示例网址:
...
我必须将上面的4个重定向网址输入到我的B2C应用配置中.
如何确定我安装的Service Fabric SDK版本?
我检查了Service Fabric Explorer,但在那里找不到任何东西.
我检查过,C:\Program Files\Microsoft Service Fabric但我也找不到它.
我真的是EF的新手(使用EF core 2.1),并且到目前为止已经关注了很多教程,但是现在我开始创建自己的数据库结构,并在尝试向数据库中添加值时偶然发现:
private async Task<int> Insert()
{
var address = new Address { AddressLine1 = "1 any street", AddressLine2 = "", AddressLine3 = "", City = "Any city" };
using (var context = new BranchContext())
{
context.Addresses.AddAsync(address);//ERROR HERE
....
}
}
Run Code Online (Sandbox Code Playgroud)
我收到错误:
InvalidOperationException:属性“ Branch.Address”的类型为“地址”,当前数据库提供程序不支持该类型。使用'[NotMapped]'属性或'OnModelCreating'中的'EntityTypeBuilder.Ignore'更改属性CLR类型或忽略该属性。
我创建了以下类:
public class Address
{
public int Id { get; set; }
public int Guid { get; set; }
public DateTime CreatedOn { get; set; }
public string Number { get; set; }
public string …Run Code Online (Sandbox Code Playgroud) 如何为依赖于 Azure 表存储的类编写单元测试,即Microsoft.Azure.Cosmos.Table.CloudTableClient?
我发现了这个 GitHub 问题,Azure Storage 仍然很难单元测试/模拟,但除了方法现在之外我没有找到任何线索virtual。
MyService依赖CloudTableClient并在内部获取对 a 的引用CloudTable以查询表。在我的示例中,我正在按分区和行键进行简单的查找:
public MyService(CloudTableClient tableClient
, ILogger<MyService> logger) { }
public async Task<MyMapping> GetMappingAsync(string rowKey)
{
var table = GetTable();
var retrieveOp = TableOperation.Retrieve<MyMapping>("MyPartitionKey", rowKey);
var tableResult = await table.ExecuteAsync(retrieveOp);
return tableResult.Result as MyMapping;
}
private CloudTable GetTable()
{
return tableClient.GetTableReference("FakeTable");
}
Run Code Online (Sandbox Code Playgroud) 我有一个类正在尝试进行单元测试,但它使用 DaprClient 对象(来自 SDK),该对象在我的单元测试环境中不起作用。我想创建一个模拟并使用它,但 DaprClient 实现的唯一接口是 IDisposable。
有没有办法模拟 DaprClient 进行单元测试?
我能想到的唯一解决方案是将 DaprClient 包装在一个带有接口的类中,并在任何地方使用这个包装器。这感觉真的很混乱,每次我想在 DaprClient 上使用新方法时都需要更新包装器。
我对其他可能绕过问题的解决方案持开放态度,但我更喜欢用模拟类型方法进行简单替换。
我在 Windows 上的 Visual Studio 2019 中使用 .Net 5、xUnit 和 Moq(尽管一些团队成员使用 Mac,因此需要在两个平台上工作)。
在此特定实例中,我使用DaprClient.GetBulkSecretAsync方法,但如果可能的话,我想要一个可以在其他地方使用的解决方案。
我不明白如何使用Azure B2C中的"范围".它们与API相关联,但与用户无关.我确定我遗漏了一些东西,但我认为与API相关的东西没有实际用途.我已经根据用户在数据库中的角色使用并实现了基于声明的身份验证.
例如:API的普通用户不应具有删除对象的权限,但管理员应具有权限.有人有一个实际的例子说明如何使用这些B2C"范围"来限制用户对API的访问吗?
我正在将应用程序从ASP.Net MVC 5框架迁移到新的.Net Core 2.1.
我在MVC 5项目中使用了Windows身份验证和自定义RoleProvider,如下面的链接所示.
如何在Core 2.1中完成相同的操作,因为它似乎不包含RoleProvider功能?
我遇到的每个示例都使用IdentityUser和IdentityRole的个人帐户.
用户和角色的自定义表格:
public class User
{
public User() { UserRoles = new HashSet<UserRole>(); }
[Key]
public string Id { get; set; }
[StringLength(50)]
[Required]
public string Logon { get; set; } //The users Active Directory Username
public bool Active { get; set; }
public ICollection<UserRole> UserRoles { get; set; }
}
public class Role
{
public Role() { UserRoles = new HashSet<UserRole>(); }
[Key]
public string Id { get; …Run Code Online (Sandbox Code Playgroud) azure-ad-b2c ×3
c# ×3
moq ×2
unit-testing ×2
.net ×1
.net-5 ×1
asp.net-core ×1
dapr ×1
ef-core-2.1 ×1
exception ×1
java ×1
oledb ×1
pmd ×1
rethrow ×1
roles ×1
xunit ×1