VSTO 2007:如何确定范围的页面和段落编号?

我正在构建一个MS Word加载项,它必须从文档中收集所有评论气球并在列表中汇总它们。 我的结果将是一个ReviewItem类列表,其中包含Comment本身,段落编号和注释文本所在的页码。 我的部分代码如下所示: private static List FindComments() { List result = new List(); foreach (Comment c in WorkingDoc.Comments) { ReviewItem item = new ReviewItem() { Remark = c.Reference.Text, Paragraph = c.Scope. ???, // How to determine the paragraph number? Page = c.Scope. ??? // How to determine the page number? }; result.Add(item); } return […]

如何在ASP.NET中找到所选的RadioButton值?

我有两个asp:RadioButton控件,它们具有相同的GroupName ,这实际上使它们互斥。 我的标记: 我的目的是找到被检查的RadioButton的工具提示/文本。 我有这个代码隐藏: int registrationTypeAmount = 0; if (OneJobPerMonthRadio.Checked) { registrationTypeAmount = Convert.ToInt32(OneJobPerMonthRadio.ToolTip); } if (TwoJobsPerMonthRadio.Checked) { registrationTypeAmount = Convert.ToInt32(TwoJobsPerMonthRadio.ToolTip); } 我发现代码丑陋且多余。 (如果我有20个复选框怎么办?) 有没有一种方法可以从一组具有相同GroupName的RadioButton中获取已检查的RadioButton ? 如果没有,写一个的指针是什么? PS:我不能在这种情况下使用RadioButtonList 。

C#Rounding MidpointRounding.ToEven vs MidpointRounding.AwayFromZero

在C#中,两个小数舍入策略MidpointRounding.ToEven和MidpointRounding.AwayFromZero的准确性有什么不同吗? 我的意思是两者都确保在舍入到的数字之间均匀分布,或者是一个舍入策略而不是表示与另一个相比的舍入数字?

需要使用自定义货币格式与String.Format一起使用

我正在尝试在C#中使用String.Format(“{0:c}”,somevalue),但我很难搞清楚如何配置输出以满足我的需求。 以下是我的需求: 0输出为空白 1.00输出到1.00美元 10.00输出到10.00美元 100.00输出到$ 100.00 1000.00输出到$ 1,000.00 我已经尝试过String.Format(“{0:c}”,somevalue)但是对于零值,它输出$ 0.00这不是我想要的。 我也尝试过String.Format(“{0:$ 0,0.00; $(0,0.00);#}”,somevalue),但对于1.0,它输出$ 01.00。 String.Format(“{0:$ 0.00; $(0.00);#}”,somevalue)适用于大多数情况,但当somevalue为1000.00时,输出为$ 1000.00。 是否有适合所有5个案例的格式? 我阅读的所有文档仅详细介绍了基础知识,并未涉及此类方案。

删除匿名事件处理程序

我有以下代码,其中SprintServiceClient是对WCF服务的引用 – public class OnlineService { private SprintServiceClient _client; public OnlineService() { _client = new SprintServiceClient(); } public void AddMemberToTeam(MemberModel user, int projectId, Action callback) { _client.AddMemberToTeamCompleted += (s, e) => callback(e.Result); _client.AddMemberToTeamAsync(user.ToUser(), projectId); } } 问题是,每次调用AddMemberToTeam时,它都会向client.AddMemberToTeamCompleted添加另一个回调。 即第一次调用AddMemberToTeam时,调用一次回调,第二次调用AddMemberToTeam,调用两次ect回调。 有没有办法在调用eventhandler后从AddMemberToTeamCompleted中删除eventhandler或使用另一个接受回调的方法?

使用TcpClient和Reactive Extensions从Stream读取连续字节流

请考虑以下代码: internal class Program { private static void Main(string[] args) { var client = new TcpClient(); client.ConnectAsync(“localhost”, 7105).Wait(); var stream = client.GetStream(); var observable = stream.ReadDataObservable().Repeat(); var s = from d in observable.Buffer(4) let headerLength = IPAddress.NetworkToHostOrder(BitConverter.ToInt16(d.ToArray(), 2)) let b = observable.Take(headerLength) select b.ToEnumerable().ToArray(); s.Subscribe(a => Console.WriteLine(“{0}”, a)); Console.ReadLine(); } } public static class Extensions […]

如何获取DataTable中列的SqlType?

我有一个从SQL数据库获得的DataTable,如下所示: using (SqlCommand cmd = new SqlCommand(query, _sqlserverDB)) { using (SqlDataAdapter adapter = new SqlDataAdapter(cmd)) { DataSet dataSet = new DataSet(); adapter.Fill(dataSet); result = (dataSet != null && dataSet.Tables != null && dataSet.Tables.Count > 0) ? dataSet.Tables[0] : null; } } 当我尝试通过dataColumn.DataType获取每列的DataType时,我得到C#类型(Int32,Int64,String等)。 问题:如何访问本机SQL数据类型(varchar,nvarchar,bigint …)而不是C#类型? 我试过dataColumn.DataType.UnderlyingSystemType,结果是一样的。

EF代码优先为一个DbSet的PluralizingTableNameConvention

如何仅针对单个表/ DbSet切换此约定PluralizingTableNameConvention? 据我所知,我只能对给定的DbContext所有DbSets执行此DbContext

尝试上传大文件时获取exception

我正在使用wshttpbinding来提供服务 当我尝试上传15Mb的文件时,它会抛出下面的EndPointNotFoundException: 例外消息: There was no endpoint listening at “MY SERVICE URL” that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details. 例外: The remote server returned an error: (404) Not Found.

如何动态设置母版页?

我有要求我想根据用户ID为同一页面设置不同的母版页(即一个用户必须设置一个母版页,另一个用户必须设置另一个母版)。可以为任何页面设置不同的母版页动态吗?请帮忙……