我如何为特定类注入不同的对象实现?
例如,在统一中我可以:定义两个实现 IRepository
container.RegisterType<IRepository, TestSuiteRepositor("TestSuiteRepository");
container.RegisterType<IRepository, BaseRepository>();
Run Code Online (Sandbox Code Playgroud)
并致电所需的实施
public BaselineManager([Dependency("TestSuiteRepository")]IRepository repository)
Run Code Online (Sandbox Code Playgroud) 我正在MassTransit和rabbitmq的帮助下开发分布式应用程序
我必须提供在网页上生成报告而无需通过点击按钮重新加载页面的能力,我也应该调用Windows服务进行数据准备(该服务处理每个请求30秒 - 1分钟).
我基于此示例的第一次尝试:https://github.com/MassTransit/Sample-RequestResponse
[HttpPost]
public async Task<HttpStatusCodeResult> GenerateReport(string someJsonData)
{
var serviceAddress = new Uri(ConfigurationManager.AppSettings["BaseLineRecordService"]);
var client = this.Bus.CreateRequestClient<ICreateReportRequest, ICreateReportResponse>(serviceAddress, TimeSpan.FromHours(1));
ICreateReportResponse response = await client.Request(new CreateReportRequest());
reportHub.ShowRepordData(response); // Update data by SingleR
return new HttpStatusCodeResult(200);
}
Run Code Online (Sandbox Code Playgroud)
但据我所知,这不是一个更好的方法,因为我在所有数据准备期间都保持联系.
我读了很多文章,我找到了三种方法.哪种方式更受欢迎?
1)喜欢这篇文章http://www.maldworth.com/2015/07/19/signalrchat-with-masstransit-v3/
2)作为第一个但使用Rest API调用而不是IIS端的消费者
3)本文的想法http://weblog.west-wind.com/posts/2013/Sep/04/SelfHosting-SignalR-in-a-Windows-Service
我有很多类似的ViewModel:
public class RequestForSalaryVM : StatementViewModel
{
// RequestForSalaryVM properties
}
public class ReliefVM : StatementViewModel
{
// ReliefVM properties
}
Run Code Online (Sandbox Code Playgroud)
和很多类似的方法:
[HttpPost]
public ActionResult SaveRelief(User currentUser, ReliefVM statement)
{
ReliefVM model = (ReliefVM)SaveModel(currentUser, statement);
if (model == null)
return RedirectToAction("List");
return View("Relief", model);
}
[HttpPost]
public ActionResult SaveRequestForSalary(User currentUser, RequestForSalaryVM statement)
{
RequestForSalaryVM model = (RequestForSalaryVM)SaveModel(currentUser, statement);
if (model == null)
return RedirectToAction("List");
return View("RequestForSalary", model);
}
Run Code Online (Sandbox Code Playgroud)
我想得到这样的东西:
[HttpPost]
public ActionResult SaveStatement(User currentUser, FormCollection statement, string ViewModelName)
{
Assembly …Run Code Online (Sandbox Code Playgroud) 我有一列有 3 行,如何删除行之间的空间?
这是我的代码:
Widget _buildTable() {
return Column(
children: [
Row(
children: _getBtns(),
),
Row(
children: _getBtns(),
),
Row(
children: _getBtns(),
),
]);
}
List<Widget> _getBtns() {
final result = <Widget>[];
for (int i = 0; i < 7; i++) {
result.add(
Expanded(
child: RaisedButton(color: Colors.green, onPressed: () {}),
),
);
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
这是我想得到的:
我对流代码的结果感到困惑:
bool? _true = true;
bool? val1 = _true ?? true && false; //true
bool? val2 = (_true ?? true) && false; //false
Run Code Online (Sandbox Code Playgroud)
我以为结果应该是一样的,有人可以解释诸如行为吗?我注意到它至少在c#和dart中都相同,因此这应该是一个很好的理由。
我有某种时间表,其中包含小时数和天数
Widget _buildSchedule(ScheduleLoaded state) {
final List<Widget> days = state.range.days.map((DateTime day) {
return Column(
children:
_buildTimeSlots(day, state.timeSlots.toList()),
);
}).toList();
return ListView( scrollDirection: Axis.horizontal, children: days);
}
Run Code Online (Sandbox Code Playgroud)
现在我正在尝试使其也可以垂直滚动(分别按天或所有屏幕)
Widget _buildSchedule(ScheduleLoaded state) {
final List<Widget> days = state.range.days.map((DateTime day) {
return ListView(
shrinkWrap: true,
physics: ClampingScrollPhysics(),
children: _buildTimeSlots(day, state.timeSlots.toList())
);
}).toList();
return ListView( scrollDirection: Axis.horizontal, children: days);
}
Run Code Online (Sandbox Code Playgroud)
根据 SO 嵌套ListView上的相关答案,和shrinkWrap应该ClampingScrollPhysics可以工作,但第二个版本无法渲染,并出现错误'constraints.hasBoundedWidth': is not true。
我想为 CustomScrollView 制作某种自定义滚动进度指示器。
_scrollController = ScrollController()..addListener(_scroll);
void _scroll() {
print('scrolled ${_scrollController.offset} from {??}');
}
Run Code Online (Sandbox Code Playgroud)
有没有办法找出 _scrollController 最大偏移量?
或者我可以从滚动条小部件中获得一些价值吗?
关于此主题的大多数答案都建议采用以下解决方案。
import 'package:flutter_statusbarcolor/flutter_statusbarcolor.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
FlutterStatusbarcolor.setStatusBarColor(Colors.white);
Run Code Online (Sandbox Code Playgroud)
但根据这个答案
构建方法的设计方式应该是纯粹的/没有副作用。
建议的解决方案有一个缺点 - 如果我必须根据当前屏幕更改状态颜色,则它不起作用。
有什么办法可以处理吗?
我怎么能做这样的事情?我发现如何使用反射来调用泛型方法?但不确定这是我的情况.
public class XmlSerializer
{
public string Serialize<T>(T obj) where T : class
{
return string.Empty;
}
}
class Program
{
static void Main(string[] args)
{
MakeRequst<string>("value");
}
public static void MakeRequst<T>(T myObject)
{
var XmlSerializer = new XmlSerializer();
XmlSerializer.Serialize<T>(myObject);
}
}
Run Code Online (Sandbox Code Playgroud) c# ×5
flutter ×4
dart ×3
asp.net-mvc ×2
asp.net ×1
asp.net-core ×1
generics ×1
masstransit ×1
rabbitmq ×1
signalr ×1