我试图Window
在需要的时候保留一个实例ShowDialog
.这在winforms中找到了,但是在WPF中我接受了这个例外:
System.InvalidOperationException:无法在Window关闭后设置Visibility或调用Show,ShowDialog或WindowInteropHelper.EnsureHandle.
有没有办法在WPF中做这样的事情?
MyWindow.Instance.ShowDialog();
public class MyWindow : Window
{
private static MyWindow _instance;
public static MyWindow Instance
{
if( _instance == null )
{
_instance = new Window();
}
return _instance();
}
}
Run Code Online (Sandbox Code Playgroud) 我正在处理一个处理大量Sql对象的类 - 连接,命令,DataAdapter,CommandBuilder等.有多个实例我们有这样的代码:
if( command != null )
{
command.Dispose();
}
if( dataAdapter != null )
{
dataAdapter.Dispose();
}
etc
Run Code Online (Sandbox Code Playgroud)
我知道这在重复方面相当不足,但它已经开始闻起来了.我认为它闻起来的原因是因为在某些情况下该对象也被设置为null.
if( command != null )
{
command.Dispose();
command = null;
}
Run Code Online (Sandbox Code Playgroud)
如果可能的话,我希望摆脱重复.我已经提出了这种通用方法来处理一个对象并将其设置为null.
private void DisposeObject<TDisposable>( ref TDisposable disposableObject )
where TDisposable : class, IDisposable
{
if( disposableObject != null )
{
disposableObject.Dispose();
disposableObject = null;
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是......
null
?编辑:
我知道这个using
声明,但是我不能总是使用它,因为我有一些成员变量需要持续超过一次调用.例如,连接和事务对象.
谢谢!
在团队环境中工作,您如何处理拒绝遵循团队定义标准的开发人员?
1)开发人员处于初级水平
2)开发人员处于同行级别
3)开发人员处于高级别
我知道这是有启发性的,但我觉得通过让开发人员更专业,这将有利于开发人员.谢谢!
如何对实体框架返回的对象的内部集合进行排序?
public class X
{
public string Field {get; set;}
public EntityCollection<Y> Ys {get; set;}
}
public class Y
{
public string Field {get; set;}
}
from x in entities.Xs
orderby x.Field
select x
Run Code Online (Sandbox Code Playgroud)
有没有办法修改这个LINQ查询以返回X对象,还有Y对象排序?或者我必须在Y列表返回时手动排序?
编辑:
此代码必须返回X类型对象的集合,匿名键入不符合当前项目的要求.
我试图解决的用例是我们的域模型的封装.例如,我们有一个内部模型,用于后端处理,我们不希望暴露给客户端.这种封装的主要原因之一是变化的波动性,因为我们的域对象可能比"已发布"的客户端模型更快地变化.因此,我们希望将WebApi控制器限制为仅返回"已发布"的客户端模型.
为此,我们需要在WebApi项目之外创建没有内部模型引用的接口,然后在WebAPI控制器上使用这些接口,最后更改路由/过滤以验证所访问的路由/方法是否为界面.
public class PublishedModel
{
public int Foo {get; set;}
public string Bar {get; set;}
}
public interface IPublishedAPI
{
PublishedModel GetModel(int id);
}
Run Code Online (Sandbox Code Playgroud)
public class MyApi : ApiController, IPublishedAPI
{
public IDomainManager _manager;
public MyApi(IDomainManager manager)
{
_manager = manager;
}
[HttpGet]
[Route("good/{id}")]
public PublishedModel Good(int id)
{
DomainModel domainModel = _manager.GetDomainModelById(id);
return new PublishedModel
{
Foo = domainModel.Foo,
Bar = domainModel.Bar,
}
}
[HttpGet]
[Route("bad/{id}")]
public DomainModel Bad(int id)
{
var domainModel = _manager.GetDomainModelById(id);
return …
Run Code Online (Sandbox Code Playgroud) c# ×4
.net ×1
coding-style ×1
generics ×1
idisposable ×1
singleton ×1
sql-order-by ×1
standards ×1
window ×1
wpf ×1