小编Not*_*Dan的帖子

668
推荐指数
9
解决办法
65万
查看次数

408
推荐指数
9
解决办法
26万
查看次数

使用DataContractSerializer进行序列化时如何忽略属性?

我使用.NET 3.5SP1和DataContractSerializer来序列化一个类.在SP1中,他们更改了行为,因此您不必在类中包含DataContract/DataMember属性,它只会序列化整个事物.这是我正在使用的行为,但现在我需要忽略序列化程序中的一个属性.我知道一种方法是将DataContract属性添加到类中,并将DataMember属性放在我想要包含的所有成员上.不过,我有理由认为这对我不起作用.

所以我的问题是,是否有一个属性或者我可以使用什么来使DataContractSerializer忽略属性?

.net c# wcf serialization

115
推荐指数
3
解决办法
15万
查看次数

如何在C#中下载HTML源代码?

如何在c#中获取给定网址的HTML源代码?

c#

102
推荐指数
5
解决办法
16万
查看次数

WCF错误 - 找不到引用合同"UserService.UserService"的默认端点元素

任何想法如何解决这一问题?

UserService.UserServiceClient userServiceClient = new UserServiceClient();
            userServiceClient.GetUsersCompleted += new EventHandler<GetUsersCompletedEventArgs>(userServiceClient_GetUsersCompleted);
            userServiceClient.GetUsersAsync(searchString);
Run Code Online (Sandbox Code Playgroud)

.

<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding name="BasicHttpBinding_UserService" 
                     maxBufferSize="2147483647" 
                     maxReceivedMessageSize="2147483647">
                <security mode="None" />
            </binding>
        </basicHttpBinding>
    </bindings>
    <client>
        <endpoint address="http://localhost:52185/UserService.svc" 
                  binding="basicHttpBinding" 
                  bindingConfiguration="BasicHttpBinding_UserService" 
                  contract="UserService.UserService"
                  name="BasicHttpBinding_UserService" />
    </client>
    <behaviors>
        <serviceBehaviors>
            <behavior name="Shell.Silverlight.Web.Service3Behavior">
                <serviceMetadata httpGetEnabled="true" />
                <serviceDebug includeExceptionDetailInFaults="false" />
            </behavior>
        </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
    <services>
        <service behaviorConfiguration="Shell.Silverlight.Web.Service3Behavior" 
                 name="Shell.Silverlight.Web.Service3">
            <endpoint address="" 
                      binding="basicHttpBinding" 
                      contract="Shell.Silverlight.Web.Service3" />
            <endpoint address="mex" 
                      binding="mexHttpBinding" 
                      contract="IMetadataExchange" />
        </service>
    </services>
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud)

无法在ServiceModel客户端配置部分中找到引用合同"UserService.UserService"的默认端点元素.这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到与此合同匹配的端点元素.

解决!

我没有提到这是一个Silverlight应用程序.我在DLL中有wcf引用,它有自己的"ServiceReferences.ClientConfig"文件.我将DLL的ServiceReferences.ClientConfig的内容移动到主Silverlight项目并且它工作了.

.net c# wcf

96
推荐指数
4
解决办法
14万
查看次数

我可以将构造函数参数传递给Unity的Resolve()方法吗?

我使用Microsoft的Unity进行依赖注入,我想做这样的事情:

IDataContext context = _unityContainer.Resolve<IDataContext>();
var repositoryA = _unityContainer.Resolve<IRepositoryA>(context); //Same instance of context
var repositoryB = _unityContainer.Resolve<IRepositoryB>(context); //Same instance of context

IDataContext context2 = _unityContainer.Resolve<IDataContext>(); //New instance
var repositoryA2 = _unityContainer.Resolve<IRepositoryA>(context2);
Run Code Online (Sandbox Code Playgroud)

RepositoryA并且RepositoryB都有一个带IDataContext参数的构造函数,我希望Unity使用我传递它的上下文初始化存储库.另请注意,IDataContext未在Unity中注册(我不想要3个实例IDataContext).

.net c# dependency-injection unity-container constructor-injection

87
推荐指数
4
解决办法
9万
查看次数

单元测试调用另一个方法的方法

对调用多个方法的方法进行单元测试的最佳方法是什么,例如:

modify(string value)
{
    if(value.Length > 5)  replaceit(value);

    else changeit(value);
}
Run Code Online (Sandbox Code Playgroud)

这个伪代码有一个修改方法(当前)调用replaceit()changeit().我已经为replaceitchangeit编写了测试,因此编写一个新的修改测试将是同一组代码的99%.我需要对它进行测试,因为它可能会在未来发生变化.

那么我是否复制粘贴现有的测试代码?将测试代码移动到一个通用功能?还有其他想法吗?我不确定这里的最佳做法.

testing unit-testing

57
推荐指数
5
解决办法
3万
查看次数

如何在实体框架中进行"in"查询?

如何在linq中选择实体来从列表中选择带有键的行?像这样的东西:

var orderKeys = new int[] { 1, 12, 306, 284, 50047};
var orders = (from order in context.Orders 
              where (order.Key in orderKeys) 
              select order).ToList();
Assert.AreEqual(orderKeys.Count, orders.Count);
Run Code Online (Sandbox Code Playgroud)

我尝试使用一些答案中提到的Contains方法但它不起作用并抛出此异常:

LINQ to Entities无法识别方法'Boolean Contains [Int32](System.Collections.Generic.IEnumerable`1 [System.Int32],Int32)'方法,并且此方法无法转换为商店表达式.

.net c# linq entity-framework

49
推荐指数
3
解决办法
9万
查看次数

Linq Count()比List.Count或Array.Length更快还是更慢?

LINQ Count()方法是否比List<>.Count或更快或更慢Array.Length

.net c# linq

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

我可以让XmlSerializer在反序列化时忽略命名空间吗?

我是否可以在反序列化时使XmlSerializer忽略名称空间(xmlns属性),以便无论是否添加属性,或者即使属性是伪造的也无关紧要?我知道源始终是可信的,所以我不关心xmlns属性.

.net c# serialization xml-serialization

40
推荐指数
3
解决办法
6万
查看次数