我正在使用Exchange Web服务托管API和联系人数据.我有以下代码,它是功能性的,但并不理想:
foreach (Contact c in contactList)
{
string openItemUrl = "https://" + service.Url.Host + "/owa/" + c.WebClientReadFormQueryString;
row = table.NewRow();
row["FileAs"] = c.FileAs;
row["GivenName"] = c.GivenName;
row["Surname"] = c.Surname;
row["CompanyName"] = c.CompanyName;
row["Link"] = openItemUrl;
//home address
try { row["HomeStreet"] = c.PhysicalAddresses[PhysicalAddressKey.Home].Street.ToString(); }
catch (Exception e) { }
try { row["HomeCity"] = c.PhysicalAddresses[PhysicalAddressKey.Home].City.ToString(); }
catch (Exception e) { }
try { row["HomeState"] = c.PhysicalAddresses[PhysicalAddressKey.Home].State.ToString(); }
catch (Exception e) { }
try { row["HomeZip"] = c.PhysicalAddresses[PhysicalAddressKey.Home].PostalCode.ToString(); }
catch …Run Code Online (Sandbox Code Playgroud) 随着我越来越多地了解OOP,并开始实施各种设计模式,我不断回到人们讨厌Active Record的案例.
通常,人们说它不能很好地扩展(引用Twitter作为他们的主要例子) - 但没有人真正解释为什么它不能很好地扩展; 和/或如何在没有缺点的情况下实现AR的优点(通过类似但不同的模式?)
希望这不会变成关于设计模式的神圣战争 - 我想知道的只是****特别****Active Record有什么问题.
如果它不能很好地扩展,为什么不呢?
还有什么其他问题?
我正在尝试根据布尔属性的值过滤一些列表项,但无论我做什么,总是会显示整个列表.我尝试过的一些东西已经破碎,没有任何东西显示出来,但这既不在这里,也不在那里.我不能按要求让我的过滤工作:
$scope.attendees = [
{"firstname":"Steve", "lastname":"Jobs", "arrived":true, "id":1}
,{"firstname":"Michelle", "lastname":"Jobs", "arrived":false, "id":2}
,{"firstname":"Adam", "lastname":"Smith", "arrived":true, "id":3}
,{"firstname":"Megan", "lastname":"Smith", "arrived":false, "id":4}
,{"firstname":"Dylan", "lastname":"Smith", "arrived":false, "id":5}
,{"firstname":"Ethan", "lastname":"Smith", "arrived":false, "id":6}
];
Run Code Online (Sandbox Code Playgroud)
使用以下ng-repeat过滤:
<ul>
<li ng-repeat="person in attendees track by person.id | filter:arrived:'false'">
{{person.lastname}}, {{person.firstname}}
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我觉得我已经尝试过我可以找到的每个排列,其中大多数来自各种StackOverflow搜索结果:
filter:'arrived'filter:arrivedfilter:'person.arrived'filter:person.arrivedfilter:{arrived:true}filter:{arrived:'true'}filter:{person.arrived:true}filter:{person.arrived:'true'}我也尝试过创建自定义过滤器功能:
$scope.isArrived = function(item) {
return item.arrived;
};
Run Code Online (Sandbox Code Playgroud)
并应用它:
filter:isArrivedfilter:'isArrived'filter:{isArrived(person)}filter:isArrived(person)filter:'isArrived(person)'这些似乎都不起作用.我错过了什么?
我正在寻找一个JavaScript月份选择工具.我已经在网站上使用jQuery了,所以如果它是一个jQuery插件,那就很合适了.我也对其他选择持开放态度.
基本上,我正在使用简化版的jQuery UI Date Picker.我不关心这个月的日子,只关注月份和年份.使用日期选择器控件感觉像是矫枉过正和一个kludge.我知道我可以使用一对选择框,但感觉很杂乱,然后我还需要一个确认按钮.
我正在设想一个由两行六列或三行四列组成的网格,用于月份选择,以及当前和未来的年份.(也许有能力列出几年?我看不到任何人需要提前一年或两年,所以如果我能列出当前和未来两年,那就会膨胀.)
它实际上只是DatePicker的一个愚蠢的版本.这样的事情存在吗?
问题/漫画有问题:http://xkcd.com/287/

我不确定这是最好的方法,但这是我到目前为止所提出的.我正在使用CFML,但任何人都应该可读.
<cffunction name="testCombo" returntype="boolean">
<cfargument name="currentCombo" type="string" required="true" />
<cfargument name="currentTotal" type="numeric" required="true" />
<cfargument name="apps" type="array" required="true" />
<cfset var a = 0 />
<cfset var found = false />
<cfloop from="1" to="#arrayLen(arguments.apps)#" index="a">
<cfset arguments.currentCombo = listAppend(arguments.currentCombo, arguments.apps[a].name) />
<cfset arguments.currentTotal = arguments.currentTotal + arguments.apps[a].cost />
<cfif arguments.currentTotal eq 15.05>
<!--- print current combo --->
<cfoutput><strong>#arguments.currentCombo# = 15.05</strong></cfoutput><br />
<cfreturn true />
<cfelseif arguments.currentTotal gt 15.05>
<cfoutput>#arguments.currentCombo# > 15.05 (aborting)</cfoutput><br />
<cfreturn false /> …Run Code Online (Sandbox Code Playgroud) 我遇到了类似的问题当前的事务无法提交,也无法支持写入日志文件的操作,但我有一个后续问题.
那里的答案在Transact-SQL中引用了使用TRY ... CATCH,我将在一秒钟内回过头来......
我的代码(当然继承)有简化形式:
SET NOCOUNT ON
SET XACT_ABORT ON
CREATE TABLE #tmp
SET @transaction = 'insert_backtest_results'
BEGIN TRANSACTION @transaction
BEGIN TRY
--do some bulk insert stuff into #tmp
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION @transaction
SET @errorMessage = 'bulk insert error importing results for backtest '
+ CAST(@backtest_id as VARCHAR) +
'; check backtestfiles$ directory for error files ' +
' error_number: ' + CAST(ERROR_NUMBER() AS VARCHAR) +
' error_message: ' + …Run Code Online (Sandbox Code Playgroud) 我有一个对象,其中包含我想要绑定到表单元素的十几个字段,以便我可以使用该对象将数据发送回服务器进行保存.
我的容器对象的定义:
private static const emptyLink:Object = {
id: -1, title:'',
trigger1:'',trigger2:'',trigger3:'',trigger4:'',trigger5:'',
linkTitle:'', linkBody:'',
answer1:'',answer2:'',answer3:'',answer4:'',answer5:''
};
[Bindable] public var currentLink:Object = emptyLink;
Run Code Online (Sandbox Code Playgroud)
currentLink在运行时分配给ArrayCollection中的特定索引,我只是使用该emptyLink对象进行初始化.
<mx:Panel id="triggerPanel" title="Trigger" width="33%">
<mx:VBox id="tpBoxes" width="100%" paddingBottom="5" paddingLeft="5" paddingRight="5" paddingTop="5">
<mx:TextInput id="trigger1" width="100%" textAlign="left" text="{currentLink.trigger1}" />
<mx:TextInput id="trigger2" width="100%" textAlign="left" text="{currentLink.trigger2}" />
<mx:TextInput id="trigger3" width="100%" textAlign="left" text="{currentLink.trigger3}" />
<mx:TextInput id="trigger4" width="100%" textAlign="left" text="{currentLink.trigger4}" />
<mx:TextInput id="trigger5" width="100%" textAlign="left" text="{currentLink.trigger5}" />
</mx:VBox>
</mx:Panel>
Run Code Online (Sandbox Code Playgroud)
当然,这编译并显示得很好,但每个实例都有运行时警告:
警告:无法绑定到类'Object'上的属性'trigger1'(类不是IEventDispatcher)警告:无法绑定到类'Object'上的属性'trigger2'(类不是IEventDispatcher)警告:无法绑定到类'Object'上的属性'trigger3'(类不是IEventDispatcher)警告:无法绑定到类'Object'上的属性'trigger4'(类不是IEventDispatcher)警告:无法在类上绑定属性'trigger5' '对象'(类不是IEventDispatcher)
并且在更改字段currentLink时不更新对象TextInput.
显而易见的答案是我的对象需要是实现的类的实例IEventDispatcher.答案没有告诉我的是实现该界面的细节(需要什么?什么不是?),以及是否有更简单的方法 …
我的任务是在.Net中编写一个SOAP Web服务,作为EWS2010和以前使用WebDAV连接到Exchange的应用服务器之间的中间件.(据我所知,WebDAV正在消失EWS2010,因此应用服务器将无法像之前那样连接,并且在没有WebDAV的情况下连接到EWS的指数更难.理论上是在.Net中实现它.应该比其他任何事情都容易......对吧?!)
我的最终目标是能够获取并更新指定Exchange帐户的电子邮件,日历项,联系人和待办事项列表项.(删除目前不是必需的,但我可以将其构建以供将来考虑,如果它很容易的话).
我最初得到了一些示例代码,实际上它确实有效,但我很快意识到它已经过时了.使用的类型和类在当前文档中没有出现.
例如,用于创建与Exchange服务器的连接的方法是:
ExchangeService svc = new ExchangeService();
svc.Credentials = new WebCredentials(AuthEmailAddress, AuthEmailPassword);
svc.AutodiscoverUrl(AutoDiscoverEmailAddress);
Run Code Online (Sandbox Code Playgroud)
对于它的价值,这是使用示例代码附带的程序集:( Microsoft.Exchange.WebServices.dll"MEWS").
在我意识到这不是当前实现连接的标准方法之前,它起作用了,我尝试在它上面构建并添加一个创建日历项的方法,我从这里复制了:
static void CreateAppointment(ExchangeServiceBinding esb)
{
// Create the appointment.
CalendarItemType appointment = new CalendarItemType();
...
}
Run Code Online (Sandbox Code Playgroud)
马上,我遇到了ExchangeService和ExchangeServiceBinding("ESB")之间的区别; 所以我开始谷歌搜索试图找出如何获得ESB定义,以便该CreateAppointment方法将编译.我发现这篇博文解释了如何从WSDL生成代理类,我做了.
不幸的是,这引起了一些冲突,其中原始程序集中定义的类型Microsoft.Exchange.WebServices.dll(示例代码附带的)与我的新EWS.dll程序集中的类型(我services.wsdl根据Exchange服务器提供的代码编译)重叠.
我排除了MEWS装配,这只会让事情变得更糟.我从一些错误和警告到25个错误和2,510个警告.没有找到各种类型和方法.这里显然有些不对劲.
所以我回去追捕.我找到了添加服务引用和Web引用的说明(即在VS2008中采取的额外步骤),我想我已经回到了正确的轨道上.
我删除了(实际上,现在,只是排除了)我以前尝过的所有以前的程序集; 我添加了一个服务参考https://my.exchange-server.com/ews/services.wsdl
现在我只有1个错误和1个警告.
警告:
元素'transport'不能包含子元素'extendedProtectionPolicy',因为父元素的内容模型为空.
这是指我添加服务引用时对web.config所做的更改; 而我刚刚在SO上找到了解决方法.我已经按照指示对该部分进行了评论,并确实使警告消失了,所以就这样了.
但错误并不容易解决: …
我正在寻找一个长而复杂的Markdown文档,我可以用它来测试不同降价实现的性能 - 作为一个简单文档的迭代基准测试的替代方案.
我以为我可以浏览Stack Overflow并找到一些东西,但总的来说,我发现的一切都很简单; 到目前为止,我在谷歌上找不到任何有用的东西.
是否有一个现有的文档展示了大部分或全部的Markdown语法,也许是为这样的测试编写的?
什么时候适合使用<cflock scope ="application">或者它与<cflock name ="foo">相反?
具体来说,我对使用CFLock保护应用程序,会话或服务器范围中的共享对象感兴趣,但我也有兴趣了解ColdFusion中锁定的不同用法.
c# ×2
.net ×1
activerecord ×1
angularjs ×1
apache-flex ×1
binding ×1
coldfusion ×1
coldfusion-8 ×1
flex3 ×1
javascript ×1
jquery ×1
locking ×1
markdown ×1
mxml ×1
np-complete ×1
oop ×1
performance ×1
sql-server ×1
testing ×1
transactions ×1