我怎么知道我的C#控制台应用程序什么时候停止?有没有这样的事件?
谢谢!
我有一个带有需要服务的构造函数的视图模型.我正在使用GalaSoft的MvvmLight,它使用服务定位器将视图连接到视图模型.
SimpleIOC处理为viewmodels构造函数提供服务很好,但我不知何故需要使用来自数据源的数据填充我的viewmodel.我的Viewmodel看起来像这样: -
public class MainPageViewModel : ViewModelBase
{
private readonly GroupService _groupService;
private readonly GroupFactory _groupFactory;
private readonly ObservableCollection<GroupVM> _groupVms = new ObservableCollection<GroupVM>();
public MainPageViewModel(Domain.Services.GroupService groupService, VMFactories.GroupFactory groupFactory)
{
_groupService = groupService;
_groupFactory = groupFactory;
}
public async Task Init()
{
var groups = await _groupService.LoadGroups();
foreach (var group in groups)
{
GroupVms.Add(_groupFactory.Create(group));
}
}
public ObservableCollection<GroupVM> GroupVms { get { return _groupVms; } }
}
Run Code Online (Sandbox Code Playgroud)
不知何故,init方法需要被称为等待,但我不知道如何最好地做到这一点?我可以想到三个选择: -
我在以前的Windows 8商店项目中使用了选项3,但它感觉不对.任何建议都会非常感激!
谢谢
罗斯
design-patterns mvvm mvvm-light windows-phone-8 windows-store-apps
我正在使用从嵌套类创建的Singleton实例.这个实例保存了一些静态集合,这些集合在处理Singleton时被清除,但问题是我得到了对非空闲处理的Singleton的引用,而这些处理没有被正确地垃圾收集.
我想知道WHEN和HOW如何完全处理和垃圾收集我的Singleton实例,以便在dispose(并设置为null)后再次查询实例时,会创建一个新的Instance.
我对Singleton实例使用以下嵌套模式:
public class SingletonClass : IDisposable
{
private List<string> _collection;
private SingletonClass()
{
}
public static SingletonClass Instance
{
get
{
return Nested.Instance; //line 1 - this line returns the non-null instance after dispose and setting the Singleton instance to null which is causing problems
}
}
private void Init()
{
_collection = new List<string>();
//Add data to above collection
}
public void Dispose()
{
//Release collection
_collection.Clear();
_collection = null;
}
class Nested
{
static Nested()
{ …Run Code Online (Sandbox Code Playgroud) 我必须VisualStateManager在我的WPF窗口中使用类,但由于我已经引用了两者 的程序集WPF Toolkit并且PresentationFramework.dll在我的项目中,C#无法解析VisualStateManager类并且给出编译错误,如" 两种类型中存在的类型"PresentationFramework.dll '和'WPFToolkit.dll' "我无法继续.
如何告诉C#编译器使用任何一个程序集中的VisualStateManager类并让项目成功编译?
方法和要求: 我们有一个使用 Sql Server 数据库在 ASP.Net Core 中开发的微服务架构,其中每个微服务都有自己的 SQL 数据库,并且不允许我们进行跨微服务通信来聚合数据并将数据从微服务发送回 api 网关和进一步回到 UI(浏览器)。
我们的浏览器有一个数据网格,需要从不同的微服务聚合数据后显示数据,例如一个数据网格必须显示客户姓名、地址、预订参考号。电话号码、国家/地区名称、酒店名称、酒店地址、酒店费用和其他更多详细信息。
上面的数据网格中还有一个功能,可以根据其中的每一列对上面的网格数据进行排序;根据不同的列值过滤网格也是一个要求。此外,我们还需要在同一网格中进行分页,页面大小为 10 条记录。
目前,据我所知,数据聚合必须发生在 API 网关层,并且在其之上必须应用排序、过滤和分页功能。
我们使用 EF Core 2.0 作为数据 ORM,将数据发送回微服务并进一步响应。
问题1:
哪一层(UI、API 网关、微服务)应该执行这种排序、过滤和分页功能,以便获得最佳性能和更好的用户体验?
问题2:
是否有可能所有参数(例如排序顺序、排序列名称、页面大小、页码、筛选列名称、筛选列值)都应始终从 API 网关层发送到微服务 api,并成功实现所有功能而没有任何延迟以及读取操作的最佳性能?
问题3:
我们创建一个粗粒度的微服务来代替上述选项,对数据进行聚合、排序、过滤和分页,而不是 API 网关层进行聚合(目前 API 网关仅在其他微服务中进行聚合),这是一个好的模式吗? ?
pagination microservices asp.net-core-webapi api-gateway ef-core-2.0
我知道C++支持私有继承,C#只支持公共继承.我还看到一篇文章说私有继承通常定义HAS-A关系和类之间的聚合关系.
编辑:私有继承的C++代码:"Car has-a Engine"关系也可以使用私有继承表达:
class Engine {
public:
Engine(int numCylinders);
void start(); // Starts this Engine
};
class Car : private Engine { // Car has-a Engine
public:
Car() : Engine(8) { } // Initializes this Car with 8 cylinders
using Engine::start; // Start this Car by starting its Engine
};
Run Code Online (Sandbox Code Playgroud)
现在,有没有办法在C#类之间创建一个HAS-A关系,这是我想知道的事情之一 - 怎么样?
另一个奇怪的问题是为什么C#不支持私有(也受保护)继承? - 不支持多个实现继承是正当理由还是其他任何原因?
是否为未来版本的C#计划了私有(和受保护)继承?
是否支持C#中的私有(和受保护)继承使其成为一种更好和广泛使用的语言?
我在我的解决方案中有一个本地WCF服务,我引用了它.但是我的控制器类无法获取Service命名空间?传统上我会使用svcUtil来编写一个包装类但是因为这是内部的我虽然我可以简单地添加"服务引用",然后点击命名空间然后简单地调用我的服务(即var service = new QServiceReference.MyClass();)
我无法显示图片,所以这里是我解决方案的结构,
Solution
-> Services Folder
-> QService Folder
QService Project
-> Web Folder
-> Zipporah.Queuing.Web (project)
-> Services References
-> QServiceReference
-> Controllers Folder
-> KioskProcessController
Run Code Online (Sandbox Code Playgroud)
我的类(KioskProcessController)如下:
using System.Web.Mvc;
using Zipporah.Queuing.Web.QServiceReference; (ITS THIS NAMESPACE REFERENCE THAT DOES NOT WORK)
namespace Zipporah.Queuing.Web.Controllers
{
public class KioskProcessController : ZipController
{
public ActionResult Index()
{
return View();
}
public ViewResult Queue()
{
return View();
}
public ViewResult PreAppointment()
{
return View();
}
}
}
Run Code Online (Sandbox Code Playgroud)
对不起,如果那个结构不清楚(如上所述我不能发布图片)
任何线索或想法都会受到最高的赞赏?
我有一个非常简单的窗口,其中一个Grid包含两列,一个TextBlock和一个TextBox.

我需要它将列0设置为自动调整其内容大小,并使列1(内容)为列0大小的4倍.
我怎样才能做到这一点.如果这是解决方案,我将创建一个Grid后代,因为我真的需要这个功能.
编辑:更多解释.第0列的内容在运行时不会更改,因此第0列或第1列的大小在运行时不得更改.网格将是配置的窗口的子节点,SizeToContent="WidthAndHeight"因此不存在额外的空间.
对德米特里的回答:我用下面的代码尝试了你说的话,它根本不起作用:
<Window x:Class="UnderstandSizing.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1"
SizeToContent="WidthAndHeight" >
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width=".25*" />
<ColumnDefinition Width=".75*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Grid.Column="0" Text="THIS IS THE LABEL:" />
<TextBox Grid.Column="1" Text="content" />
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
最后编辑:为什么我(或任何人)需要这个?
WPF的一个好处是它无法在没有固定尺寸的情况下工作吗?如果你有缺陷并且你有更大的字体大小,一切都会好看.如果您将UI翻译成另一种需要x2大小的语言,一切都会好起来的.如果您有不同的PPI设置,一切都会好看.
但是我不希望看到的是屏幕在运行时改变它的大小,因为用户不习惯这个.这就是为什么我想将输入字段的大小设置为知道字段的倍数.如果我让标签单元格重新调整到需要的大小,然后我将内容单元格设置为标签的乘数,我将获得自动调整的好处,以及用户期望具有固定大小屏幕的行为(除非他们更改大小调整大小)它).
好吧,我说我正在为以下足球俱乐部建模:所有人都是个人.玩家是一个人,因此扩展个人.会员是一个人,因此扩展个人.
超类:
Individual {name, eyeColour}
Run Code Online (Sandbox Code Playgroud)
子类:
Player extends Individual {position}
Member extends Individual {subscription}
Run Code Online (Sandbox Code Playgroud)
汤姆是足球俱乐部的老板:
Individual i = new Individual("Tom", "Blue")
Run Code Online (Sandbox Code Playgroud)
鲍勃和托尼是球员:
Player p1 = new Player("Bob", "Green", "Goalkeeper")
Player p2 = new Player("Tony", "Blue", "Striker")
Run Code Online (Sandbox Code Playgroud)
史蒂夫是会员:
Member m = new Member("Steve", "Brown", 5.00)
Run Code Online (Sandbox Code Playgroud)
个人,玩家和成员都使用Objectify持久保存到GAE数据库中的同一种(个体).
name eyeColour position subscription ^d
Tom Blue [missing] [missing] Individual
Bob Green Goalkeeper [missing] Player
Tony Blue Striker [missing] Player
Steve Brown [missing] 5.00 Member
如果Bob决定成为会员以及玩家怎么办?我想存储是订阅.我无法将鲍勃贬低为个人,然后向成员倾斜.Java不允许这样做.我无法创建新成员并复制Bob的Player对象的所有属性并将其存储回相同的ID - 我将失去他的Position属性.我需要Bob成为数据库中的成员和播放器,但不是对象形式(我不是在多重继承之后)我仍然希望获得(Player.class,"Bob")并拥有一个Player对象或获取(Member.class,"Bob")并有一个Member对象.我不需要同时具有位置和订阅属性的Object.
我也想避免这是数据存储区:
name eyeColour position subscription ^d
Tom … 我想知道所有情景和情况应该使用一个Thread类,一个ThreadPool类或Task Parallel Library它们之间有什么区别.
我试图通过谷歌搜索找到这个,但找不到任何东西.
我问这个问题,因为在某些情况下,使用Thread类和管理线程本身更好,而其他情况ThreadPool会更好但不太确定.
例如,我们希望在应用程序启动时从数据库加载大量的订单数据:什么线程管理技术(Thread | ThreadPool | TPL)将提供最佳的好处,并且还将提供更多的代码可维护性和其他好处.
上面只是一个例子,但我想知道具体是什么样的所有参数在线程的情况考虑是可以帮助确定的使用之间Thread或ThreadPoolORTPL
multithreading .net-4.0 threadpool task-parallel-library c#-4.0
使用各种语言结构在C#中实现Singleton模式的可能的不同方式有哪些?在哪种情况下使用每种解决方案?每种实施的优缺点是什么?并且,这是考虑性能,锁定和垃圾收集影响的那些实现中最好的一个?
还有哪些其他方法可以实现相同的方法以及如何改进以下代码:
public class Singleton
{
private static readonly Singleton _instance;
private Singleon()
{
}
public static Singleton GetInstance()
{
if(_instance == null)
_instance = new Singleton();
return _instance;
}
}
Run Code Online (Sandbox Code Playgroud) c# ×6
.net-4.0 ×3
c#-4.0 ×2
singleton ×2
wpf ×2
.net ×1
aggregation ×1
api-gateway ×1
c++ ×1
code-design ×1
ef-core-2.0 ×1
events ×1
grid-layout ×1
idisposable ×1
inheritance ×1
java ×1
mvvm ×1
mvvm-light ×1
namespaces ×1
objectify ×1
oop ×1
pagination ×1
threadpool ×1
wcf ×1
wcf-client ×1
wpftoolkit ×1
xaml ×1