小编Bra*_*don的帖子

用于查找和替换具有特定扩展名的所有文件的PowerShell脚本

我在Windows Server 2008上嵌套了几个配置文件,如下所示:

C:\Projects\Project_1\project1.config

C:\Projects\Project_2\project2.config
Run Code Online (Sandbox Code Playgroud)

在我的配置中,我需要像这样进行字符串替换:

<add key="Environment" value="Dev"/>
Run Code Online (Sandbox Code Playgroud)

会变成:

<add key="Environment" value="Demo"/>
Run Code Online (Sandbox Code Playgroud)

我考虑过使用批处理脚本,但没有好的方法可以做到这一点,我听说使用PowerShell脚本可以轻松执行此操作.我找到了find/replace的例子,但我希望有一种方法可以遍历我的C:\ Projects目录中的所有文件夹,并找到任何以'.config'扩展名结尾的文件.当它找到一个,我希望它替换我的字符串值.

有什么好的资源可以找到如何做到这一点或任何可以提供一些见解的PowerShell大师?

powershell scripting replace find

113
推荐指数
8
解决办法
13万
查看次数

LINQ - 将列表转换为字典,值为列表

我有一个

List<MyObject> 
Run Code Online (Sandbox Code Playgroud)

我从数据库中检索.但是,我希望它由MyObject中的属性键入以进行分组.使用LINQ将列表转换为以下内容的最佳方法是:

Dictionary<long, List<MyObject>>
Run Code Online (Sandbox Code Playgroud)

我有以下内容:

myObjectList.ToDictionary(x => x.KeyedProperty)
Run Code Online (Sandbox Code Playgroud)

但它返回:

Dictionary<long, MyObject>
Run Code Online (Sandbox Code Playgroud)

.net c# linq

88
推荐指数
2
解决办法
7万
查看次数

从不同程序集中的类名解析类型

我有一个方法,我需要解决类的类型.此类存在于另一个程序集中,该命名空间类似于:

MyProject.Domain.Model
Run Code Online (Sandbox Code Playgroud)

我试图执行以下操作:

Type.GetType("MyProject.Domain.Model." + myClassName);
Run Code Online (Sandbox Code Playgroud)

如果执行此操作的代码与我尝试解析其类型的类在同一程序集中,则此方法很有用,但是,如果我的类位于不同的程序集中,则此代码将失败.

我确信有一个更好的方法来完成这个任务,但是我没有很多经验来解析程序集和遍历名称空间来解决我正在寻找的类的类型.有关更优雅地完成此任务的任何建议或提示吗?

.net c# reflection

73
推荐指数
2
解决办法
5万
查看次数

使用带有WCF 4.0的Entity Framework 4.0时出现DataContractSerializer错误

我试图通过WCF从实体框架中检索对象列表,但我收到以下异常:

尝试序列化参数http://tempuri.org/:GetAllResult时出错.该消息的InnerException是"类型'System.Data.Entity.DynamicProxies.TestObject_240F2B681A782799F3A0C3AFBE4A67A7E86083C3CC4A3939573C5410B408ECCE’数据合同名称'TestObject_240F2B681A782799F3A0C3AFBE4A67A7E86083C3CC4A3939573C5410B408ECCE:http://schemas.datacontract.org/2004/07/System.Data.Entity.DynamicProxies预计不会’.考虑使用DataContractResolver或将任何静态未知的类型添加到已知类型列表中 - 例如,通过使用KnownTypeAttribute属性或将它们添加到传递给DataContractSerializer的已知类型列表中.有关更多详细信息,请参阅InnerException.

我过去使用过WCF,但从未使用过Entity Framework.我通过Entity Framework生成了所有实体,并使用[DataContract]和[DataMember]属性进行了注释.我的任何实体都没有导航属性.

被调用的GetAll()方法位于抽象服务类中:

[ServiceContract]
public interface IService<T>
{
    [OperationContract]
    List<T> GetAll();
}
Run Code Online (Sandbox Code Playgroud)

我正在使用ChannelFactory来调用我的实现:

Binding binding = new NetTcpBinding();
EndpointAddress endpointAddress = new EndpointAddress("net.tcp://localhost:8081/" + typeof(TestObjectService).Name);
using (ChannelFactory<ITestObjectService> channel = new ChannelFactory<ITestObjectService>(binding, endpointAddress))
{
    ITestObjectService testObjectService = channel.CreateChannel();
    testObjects = testObjectService.GetAll();
    channel.Close();
}
Run Code Online (Sandbox Code Playgroud)

我这样托管它:

Type type = typeof(TestObjectService);
ServiceHost host = new ServiceHost(type,
            new Uri("http://localhost:8080/" + type.Name),
            new Uri("net.tcp://localhost:8081/" + type.Name));
host.Open();
Run Code Online (Sandbox Code Playgroud)

使用调试时,它会从数据库中找到对象,但是,它无法返回对象.

关于我可能出错的地方的任何想法?

.net entity-framework

56
推荐指数
4
解决办法
2万
查看次数

在Javascript中拦截粘贴事件

有没有办法拦截JavaScript中的粘贴事件并获取原始值,更改它,并将关联的DOM元素的值设置为修改后的值?

例如,我有一个用户试图复制并粘贴一个包含空格的字符串,字符串的长度超过了我的文本框的最大长度.我想拦截文本,删除空格,然后使用更改值设置文本框的值.

这可能吗?

javascript dom copy-paste paste

51
推荐指数
1
解决办法
5万
查看次数

LINQ - Where表达式是否返回对象实例的新实例或引用

对于某些人来说,这可能是一个基本问题,但它会影响我设计一个程序的方式.

我有一个类型A的集合:

IEnumerable<A> myCollection;
Run Code Online (Sandbox Code Playgroud)

我按照两个不同的标准过滤我的收藏:

IEnumerable<A> subCollection1 = myCollection.Where(x => x.Count > 10);
etc.
Run Code Online (Sandbox Code Playgroud)

现在,我知道.Where表达式将返回IEnumerable的新实例,但新集合是否包含与'myCollection'引用的类型A实例相同的引用,或者是否创建了类型A的新副本?如果创建了类型为"A"的新实例,是否可以说"subCollection1"引用与"myCollection"引用相同的A实例?

编辑:添加进一步的说明.

我正在寻找一种方法,以便当我对'subCollection1'中的'A'实例进行更改时,它也会被修改为'myCollection'.

.net c# linq

39
推荐指数
4
解决办法
2万
查看次数

C# - 比较字符串相似度

可能重复:
是否有为C#编写的模糊搜索或字符串相似性函数库?

比较2个字符串以查看它们有多相似的最佳方法是什么?

例子:

My String
My String With Extra Words
Run Code Online (Sandbox Code Playgroud)

要么

My String
My Slightly Different String
Run Code Online (Sandbox Code Playgroud)

我要找的是确定每对中第一个和第二个字符串的相似程度.我想对比分进行评分,如果字符串足够相似,我认为它们是匹配对.

有没有一种很好的方法在C#中做到这一点?

.net c# string algorithm string-comparison

37
推荐指数
2
解决办法
3万
查看次数

MOQ - LINQ谓词设置方法

在我的方法中,我有我的存储库这样做:

bool isConditionMet = MyRepository.Any(x => x.Condition == true);
Run Code Online (Sandbox Code Playgroud)

我试图使用MOQ来模拟这样:

MyMockedRepository.Setup(x => x.Any(y => y.Condition == true)).Returns(true);
Run Code Online (Sandbox Code Playgroud)

但是,当代码执行时,存储库调用始终返回false.

有没有办法用MOQ做到这一点?

**编辑 - 每个请求添加代码**

我正在使用NHibernate所以我的Any方法在我的基础存储库中并实现如下:

public virtual bool Any(Expression<Func<T, bool>> predicate)
{
    return Session.Query<T>().Cacheable().Any(predicate);
}
Run Code Online (Sandbox Code Playgroud)

.net c# unit-testing predicate moq

21
推荐指数
1
解决办法
6732
查看次数

ASP.NET - 如果角色授权失败,则重定向到错误页面

我正在使用MVC 3与表单身份验证.在我的控制器或方法上,我正在执行以下操作:

[Authorize (Roles = "developer")]
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我想检查用户是否已登录,如果没有,请将其返回登录页面.但是,如果该用户的"IsInRole"检查返回false,我希望他们转到另一个类似"未授权"的视图.

完成这样的事情的最佳方法是什么?我希望避免创建一个新的Authorization属性,所以我不必重构整个应用程序中的每个Authorize属性,但如果这是必需的,我将走这条路.

.net c# authentication asp.net-mvc forms-authentication

21
推荐指数
1
解决办法
2万
查看次数

IIS 7 - 通过负载均衡器后面的IP地址限制应用程序

我试图通过负载均衡器后面的Web服务器上的IP地址限制IIS 7中的应用程序.X-Forwarded-For标头由负载均衡器设置,具有客户端的IP地址.

在IIS 7中提取IP地址以在我的应用程序上设置IP地址过滤的最佳方法是什么?如果没有最好的方法,我将最终使用HTTPModule为我处理这个问题.

.net iis-7 ip-address windows-server-2008

12
推荐指数
2
解决办法
6510
查看次数