这让我有点疯狂.我正在尝试在我的MonoTouch应用程序中注册一些NSUserDefaults.
var defaultsToRegister = new NSMutableDictionary();
defaultsToRegister.SetValueForKey(true, IS_REMINDING);
NSUserDefaults.StandardUserDefaults.RegisterDefaults(defaultsToRegister);
Run Code Online (Sandbox Code Playgroud)
显然这不是编译因为bool无法转换为NSObject.但是当我想从NSUserDefaults设置或检索一个布尔值时,我可以使用:
public bool IsReminding {
get {
return NSUserDefaults.StandardUserDefaults.BoolForKey(IS_REMINDING);
}
set {
NSUserDefaults.StandardUserDefaults.SetBool(value, IS_REMINDING);
}
}
Run Code Online (Sandbox Code Playgroud)
在设置plist文件中,boolean被写成<key>ReminderTimeOfDay</key><true/>我所期望的.那么如何注册默认的布尔值?
我有一个StackLayout,ListView我有一个添加按钮,我想在下面显示ListView.但ListView显示许多行未使用.只是空行,这迫使我的按钮显示在页面底部.我VerticalOptions一整天都搞乱了,但不能让行消失.
这是我的XAML代码:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:LiquitMobileApp"
x:Class="LiquitMobileApp.MainPage"
Title="Settings"
>
<StackLayout BackgroundColor="LightGray">
<Label Text="Liquit Zones" TextColor="Gray" FontSize="Small" Margin="10"/>
<StackLayout AbsoluteLayout.LayoutBounds="10,10,10,10">
<ListView x:Name="UsingZone" SeparatorColor="LightGray" ItemTapped="ZonesList_ItemTapped" RowHeight="60" BackgroundColor="Green" >
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.ContextActions>
<MenuItem Clicked="OnEdit" Text="Edit" />
<MenuItem Clicked="OnDelete" CommandParameter="{Binding .}" Text="Trash" IsDestructive="True" />
</ViewCell.ContextActions>
<StackLayout Padding="15, 5, 0, 0" Orientation="Horizontal" BackgroundColor="White">
<Image Source="{Binding Image}" HorizontalOptions="Start" AbsoluteLayout.LayoutBounds="250.25, 0.25, 50, 50 "/>
<StackLayout Orientation="Vertical">
<Label Text = "{Binding Name}" FontSize="20" …Run Code Online (Sandbox Code Playgroud) 我有一个表包含具有任意级别子任务的任务的典型分层数据.对于根级别任务,ParentID为NULL:
CREATE TABLE [dbo].[tblTask](
[TaskID] [int] IDENTITY(1,1) NOT NULL,
[TaskDescription] [nvarchar](255) NOT NULL,
[TaskStatusID] [int] NOT NULL,
[ParentID] [int] NULL
)
Run Code Online (Sandbox Code Playgroud)
在每个月的开始,我需要为每个未完成的任务(TaskStatusID == Complete)复制具有新TaskID的层次结构,然后关闭所有原始任务.为了挽救自己的悲痛,我的第一个倾向是在c#中解决这个问题,我比SQL更熟练,但我想首先尝试理解是否有一种很好的方法可以直接在数据库中解决这个问题.
更新:@Abe我不确定您需要哪些样本数据,并且没有所需的输出.我需要复制表中的结构,但需要新的TaskID.这适用于SQL Server.
@thursdaysgeek假设如果父任务完成,那么所有子任务也都完成了.规则是如果根任务的子任务全部完成,那么我可以设置根任务完成.否则,如果父任务未完成但子任务是,那么我只需复制父项而不是子项.希望有所帮助.
我一直在寻找解决我们公司所遇到的复杂问题的方法.该公司是4个公司联盟的一部分,这些公司在四个"地区"覆盖我们的国家.我们的分支在C#中开发了一个WebService,我们将这个项目分发给其他分支的开发人员.每个人都在自己的服务器中托管WebService.
现在,当公司不相处时,我一直在努力寻找你能期待的东西.我必须调整现有方法以适应我们的"区域需求".
所以我有这门课:
public partial class MyClass{
public static ComplexReturnType MyMethod(){
// National code. Everyone uses this block of code.
}
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个Regional文件夹,在将DLL分发给其他分支时,我将从编译中排除该文件夹.在这个文件夹里面我创建了文件MyClass.cs并继续这个:
public partial class MyClass{
public static ComplexReturnType MyMethod(){
// Regional code. Only my commpany will use this.
}
}
Run Code Online (Sandbox Code Playgroud)
该方法MyMethod在其他文件中调用.我理解它是如何partial工作的,但是我找不到适合我需要的解决方案而不创建子类并重写其他文件中已存在的每个调用.
有没有人知道如何处理这个问题?
回答后编辑
我决定采用策略设计模式,当我完成时,我想"如果一个分支决定覆盖任何方法,所有其他分支必须覆盖与其区域策略类中的国家代码相同的方法".
所以这不是很好.相反,我做了这个:
public class VStrategy
{
public virtual ComplexReturnType MyMethod(){
// National code. Method moved from MyClass
}
public virtual AnotherReturnType MySecondMethod(){
// National code. Method moved from MyClass
}
} …Run Code Online (Sandbox Code Playgroud) 我有一个WCF服务,它使用Simple Injector进行依赖注入.我想在容器引导程序中连接一些事件处理程序.我创建了一个界面IStatusChangeNotification:
public interface IStatusChangeNotification
{
event EventHandler<int> JobStatusChange;
}
Run Code Online (Sandbox Code Playgroud)
我的CommandHandler工具IStatusChangeNotification,并且有两个事件处理类EmailNotification和MmrNotification,每个定义一个Notify()方法.然后在我的引导代码中,我有以下内容:
container.Register<EmailNotification>();
container.Register<MmrNotification>();
container.RegisterManyForOpenGeneric(typeof(ICommandHandler<>),
Assembly.GetExecutingAssembly());
container.RegisterInitializer<IStatusChangeNotification>(scn =>
{
scn.JobStatusChange += container.GetInstance<EmailNotification>().Notify;
scn.JobStatusChange += container.GetInstance<MmrNotification>().Notify;
});
Run Code Online (Sandbox Code Playgroud)
这有效,并收到通知.我的问题是,这是否是连接事件处理程序的正确/最佳方法?如何在请求结束时删除处理程序并且无法删除它们会导致内存泄漏?
c# wcf entity-framework dependency-injection simple-injector
我在一个MVC3项目中使用Munq作为DI容器.我有一个服务层,可以从存储库中检索DTO.根据DTO中的属性,我需要使用两种策略之一来对DTO执行计算.我可以在容器中注册一个命名类型,例如
Container.Register<ICalculation>("Type1", c => new Type1Calculation);
Container.Register<ICalculation>("Type2", c => new Type2Calculation);
Run Code Online (Sandbox Code Playgroud)
然后我可以在尝试实例化适当的策略时直接引用容器,例如
var calc = Container.Resolve<ICalculation>(dto.ServiceType);
Run Code Online (Sandbox Code Playgroud)
但这让我依赖于容器本身以及相关的耦合和测试问题.我需要传递给服务构造函数,这将允许我获得正确的计算,但不依赖于容器?我是否应该通过工厂,因此依赖是在工厂而不是服务类?
我有一个页面,其中包含一个带有ActionLink的客户端列表,允许用户显示(或隐藏)"非活动"客户端.它showInactive=True作为控制器的查询字符串附加到url.显示"非活动"客户端后,我编辑其中一个,但是当我保存任何更改或返回列表时,查询字符串消失了.在这些请求中保持查询字符串的最佳方法是什么?我已经尝试过TempData字典,但显然我试图将它用于它不能设计的东西.
我在下拉列表中显示了一个月份列表.在选择特定月份时,我想在文本框中显示月份编号.
例如,如果我选择January我想将其显示为01,同样为其他人显示.
这是我写的示例代码:
string monthName = "january";
int i = DateTime.ParseExact(monthName, "MMMM", CultureInfo.CurrentCulture).Month;
Run Code Online (Sandbox Code Playgroud) 我定义了一个XAML页面布局,其中包含一个WebViewHTML字符串:
<WebView HorizontalOptions="Fill" VerticalOptions="FillAndExpand">
<WebView.Source>
<HtmlWebViewSource Html="{Binding Flag.Description}" />
<!-- <HtmlWebViewSource Html="<html><body><p>The HTML string.</p></body></html>" />-->
</WebView.Source>
</WebView>
Run Code Online (Sandbox Code Playgroud)
当我将字符串硬编码到XAML中时,它会正确显示,但它不会绑定到Flag.Description字符串.XAML包含一些正确绑定的标签,但我找不到WebView源未正确绑定的任何原因.
我已经将MVC3 Web应用程序添加到包含普通旧html文件的现有网站.当你请求一个特定的文件时这很好用但是我没想到的是通过更改站点使用.Net 4它不再注意到IIS中的默认文档设置(在这种情况下是IIS 6).例如,我可以请求www.something.com/index.html,但如果我要求www.something.com,我会收到资源未找到错误页面.Global.asax中是否有MapRoute我可以指定将站点路由URL映射到index.html?