我有大约20种方法,大多数需要UserPrincipalExtension一次性类来做一些不同的操作,我想将它提取到一个单独的方法,但我不知道如何,
public static UserPrincipalExtension GetUPE(Identity type, string identity)
{
using (PrincipalContext pc = MyUtilities.GetPrincipalContext())
using (UserPrincipalExtension UPE = UserPrincipalExtension.FindByIdentity(pc, type, identity))
{
// do different operations
// if I return UPE here then would pc going to dispose itself ?
}
// how best to return UPE and dipose pc as well, return UPE;
}
Run Code Online (Sandbox Code Playgroud)
所以我可以在其他方法中使用它:
var UPE = GetUPE(IdentityType.SID, "S-32sldkfjsldr344");
using(UPE)
{
}
Run Code Online (Sandbox Code Playgroud)
UPE并且PrincipalContext应该在后面处理.
我有一个包含客户的表(此表的目标是能够添加没有DB-Update的字段).该表如下所示:
CustId Property PropertyValue
1 Name Smith
1 Email smith@gmail.com
2 Name Donalds
2 Email donalds@gmail.com
3 Name john
Run Code Online (Sandbox Code Playgroud)
(客户3在表格中没有"电子邮件"条目)
预期结果:我希望每个客户端获得一行(Mail),如果客户没有电子邮件,则仍然显示一行为NULL.
CustId Property PropertyValue
1 Email smith@gmail.com
2 Email donalds@gmail.com
3 Email NULL
Run Code Online (Sandbox Code Playgroud)
有人解决方案吗?
假设我们有两个不相关的接口
public interface IFirst
{
}
public interface ISecond
{
}
Run Code Online (Sandbox Code Playgroud)
和扩展方法具有相同的名称但受限于每个接口.
public static class IFirstExtensions
{
public static void DoIt<TFirst>(this TFirst model)
where TFirst : IFirst
{
}
}
public static class ISecondExtensions
{
public static void DoIt<TSecond>(this TSecond model)
where TSecond : ISecond
{
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用IFirst实例时:
IFirst first = ...;
first.DoIt();
Run Code Online (Sandbox Code Playgroud)
然后我得到错误:
"CS0121以下方法或属性之间的调用不明确:'IFirstExtensions.DoIt(TFirst)'和'ISecondExtensions.DoIt(TSecond)'".
这很奇怪.看起来这两种方法在此范围内都可见.但如果我给它们命名不同,例如:
public static class IFirstExtensions
{
public static void DoFirst<TFirst>(this TFirst model)
where TFirst : IFirst
{
}
}
public static class ISecondExtensions
{ …Run Code Online (Sandbox Code Playgroud) 当我使用绘制图像Graphics.DrawImage并以比原始图像更大的尺寸绘制图像时,它最终会变得有点小.您可以在下图中看到:

绿线不应该是可见的,也不是图像的一部分.相反,它们被绘制在图像后面,图像应该覆盖它们.
如何绘制尺寸合适的图像?
编辑:我绘制绿色部分与我传入DrawImage调用的相同矩形,具有图像应该有多大的确切尺寸.所以我的价值观没有任何缺陷(我认为).
编辑2:我使用绿色矩形绘制FillRectangle,因此不需要进行笔计算.此外,我记录了传递给图像和绿色填充的矩形的值,并且值是正确的.这只是图像的关闭.我稍后会发布代码,因为我现在不在我的电脑上.
编辑3:这是我用来渲染图像的代码:
// This is for zooming
public readonly float[] SCALES = { 0.05f, 0.1f, 0.125f, 0.25f, 0.333f, 0.5f, 0.667f, 0.75f, 1.0f, 1.25f, 1.5f, 1.75f, 2.0f, 2.5f, 3.0f, 3.5f, 4.0f, 4.5f, 5.0f, 6.0f, 7.0f, 8.0f, 10.0f, 12.0f, 15.0f, 20.0f, 30.0f, 36.0f };
private int scaleIndex = 8;
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
float ScaleFactor = SCALES[scaleIndex];
e.Graphics.InterpolationMode = ScaleFactor < 1 ? InterpolationMode.Bicubic : InterpolationMode.NearestNeighbor; …Run Code Online (Sandbox Code Playgroud) 我用这个:
SELECT
*
FROM
sys.dm_exec_query_stats s
CROSS APPLY sys.dm_exec_sql_text( s.sql_handle ) t
ORDER BY
s.max_elapsed_time DESC
Run Code Online (Sandbox Code Playgroud)
在服务器级别上获得运行时间最长的查询.
如何获得每个数据库运行时间最长的查询?我想一次只关注一个数据库.
我的页面上有两个验证组和两个验证摘要.控件属于两个组中的任意一个,并且每个组都有一个按钮,用于对每个组执行验证.
我无法Page.IsValid上班; 无论页面上控件的有效性如何,它始终返回true.有没有不同的方法来验证特定的组?
如何在SQL Server中拆分字符串.
例:
输入字符串: stack over flow
结果:
stack
over
flow
Run Code Online (Sandbox Code Playgroud) 我正在构建我的第一个Windows服务.它是一个连接到邮箱并下载所有邮件并将其存储在本地驱动器上的组件.
我的问题是这些.
在c#windows服务中重复程序调用的最佳方法是什么.我想用一个简单的计时器?我在哪里开始和停止计时器?它是在服务本身还是我的服务运行的程序?
Windows服务中应包含哪些代码以用于以下功能
protected override void OnStart(string[] args)
{
//timer?
// MyProgram mp = new MyProgram();
}
Run Code Online (Sandbox Code Playgroud)
我应该只使用上面的新实例启动我的应用程序,还是应该包含更多内容?
正如我所说,这是我第一次使用Windows服务.
编辑:
谢谢你的所有答案.当然有很多不同的方法可以做到这一点,但我发现对我来说最好的方法是作为解决方案的一个标记.
谢谢你的帮助!
我使用ASP.Net创建了一个网站,一个使用SQL Server的表,我已将它发布到提供者.
我想要的是将MSSQL.sql文件转换为Mysql.sql文件.是否有任何免费软件或一些代码将其转换为SQL Server到MySQL?
如果有人能帮助我,我将不胜感激.
每当我提交表单时,它都会给我一个错误代码:
所有活动专家,电话,电话2等的"无效列名"和@SPECIALIST,@ CUST_PHONE,@ CUST_PHONE2等.
这是我下面的代码,也许我没有正确编写SQL语句或参数?使用@ infront的是我的数据库中的内容,其他小写的是我的文本框.我对这种编码比较陌生.
编辑:将我的INSERT INTO语句更改为建议的内容.错误仍然存在,但只是最小化
"无效的列名称eventspecialist,无效的列名称电话,无效的列名称phone2等"
private void execution(string eventspecialist, string phone, string phone2, string firstname, string lastname, string besttime, string companyname, string nonprofit, string requesteddate, string requestedtime, string attendance, string eventtype, string other, string leadsource, string notes, string catering, string bar, string damagedeposit, string dancefloor, string griddate, string gridnotes, string comments)
{
SqlConnection conn = new SqlConnection(GetConnectionString());
string sql = "INSERT INTO tblcontacts (@SPECIALIST, @CUST_PHONE1, @CUST_PHONE2, @CUST_FNAME, @CUST_LNAME, @BEST_TIME, @COMPANY_NAME, @NONPROFIT, @REQ_DATE, @REQ_TIME, @ATTENDANCE, @EVENT_TYPE, …Run Code Online (Sandbox Code Playgroud)