小编ste*_*ell的帖子

返回未知的通用列表<T>

并感谢您的帮助.

我如何从一个未知的Generic.List类型的方法返回.

public void Main()
{
  List<A> a= GetData("A");   
}

public List<T> GetData(string listType)
{
   if(listType == "A")
   {
     List<A> a= new List<A>() 
     ...
     return a; 
   }
   else
   {
     List<B> b = new List<B>()
     return b;

   }
}
Run Code Online (Sandbox Code Playgroud)

在下面的示例中,我收到类似于以下内容的错误:无法转换List<A>List<T>

这可能吗?错误发生在'return a;'上 代码行.
另外,我需要做些什么来确保线路上不会发生错误:

List<A> a= GetData("A");   
Run Code Online (Sandbox Code Playgroud)

谢谢,史蒂文

c# generics types

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

C#公共图书馆

您好,感谢您的帮助.

我希望找到一个开源的.net公共库,但我很难找到一个.

我正在寻找的东西包含:记录,缓存,字符串操作,配置读取,分机?!?

你知道这样的事情是否存在,或者这更像是我自己需要创造的东西吗?

谢谢.

.net c# architecture

7
推荐指数
3
解决办法
6809
查看次数

wcf:string element nillable ="false"

我有一个客户端要求我的required字符串元素nillable="false",目前wsdl中的所有字符串都会出来nillable="true",IE:

<xs:element name="username" nillable="true" type="xs:string" />
Run Code Online (Sandbox Code Playgroud)

我怎么能改变nillable="false"?!?我会就如何做到这一点提出任何建议?我是第一个碰到这个的人吗?

wcf wsdl

6
推荐指数
1
解决办法
6325
查看次数

wcf使用Flattened WSDL从WCF服务中提取wsdl

我有一个wcf Web服务,我需要为客户端提供wsdl文件.

以前我在.dll上使用了svcutil,一切都很好.

但是,最近我将工厂实现为Flaten wsdl文件(re:http://wcfextras.codeplex.com/ ).

我的问题是这样的:无论如何使用.svc上的svcutil来提取Flattened .WSDL文件,或者当它在本地webdev服务器上运行以检索.WSDL文件时可能以某种方式启动Web服务?

据我所知,如果我要导航到我的本地Web开发服务器(http:// localhost:2916/Service.svc?wsdl),如果我要查看源并将其保存为.wsdl,这是错了,不会提供所有相关信息.

注意:请参阅下文,了解如何在.svc文件中使用Factory.

<% @ServiceHost Factory="CompanyName.ServiceModel.Extensions.Description.FlatWsdlServiceHostFactory" language=c# Service="CompanyName.WebServices.Service"%> 
Run Code Online (Sandbox Code Playgroud)

谢谢,史蒂文

wcf wsdl

3
推荐指数
1
解决办法
5323
查看次数

帮助c#模式

您好,感谢您的帮助.

使用.Net 3.5 C#;

假设我有大约10种方法都遵循相同的模式

以3为例:

public Customer CreateCustomer(Customer c) { .. }
public Car CreateCar(Car c) { .. }
public Planet CreatePlanet(Planet p) { ..}
Run Code Online (Sandbox Code Playgroud)

每种方法的内部逻辑具有完全相同的模式.

IE:

public Customer CreateCustomer(Customer c)
{
Log.BeginRequest(c, ActionType.Create); 
Validate(customer);
WebService.Send(Convert(c));
Log.EndRequest(c, ActionType.Create); 
}

public Car CreateCar(Car c)
{
Log.BeginRequest(c, ActionType.Create); 

Validate(c);

WebService.Send(Convert(c));

Log.EndRequest(c, ActionType.Create); 
}
Run Code Online (Sandbox Code Playgroud)

CreatePlanet和其他7种方法也是如此.

这些方法可以重写,它们都遵循相同的模式,我觉得我错过了一些东西......是否有另一层抽象可以衍生出来?

问题:如何重写以利用适当的架构模式?

谢谢,史蒂文

c# architecture oop design-patterns

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

C#设计模式:通用方法?

并感谢您的帮助

对于:

public abstract class EntityBase
{    
 protected void Create(EntityBase c)    
 {        
    Log.Audit(c);
 }
}

public class Customer : EntityBase
{    
 public void CreateCustomer(Customer c)    
 {        
  Create(c);    
 }    
 }
}

public class Car : EntityBase
{    
 public void CreateCar(Car c)    
 {        
  Create(c);    
 }    
 }
}
Run Code Online (Sandbox Code Playgroud)

对于上面的示例1)您将如何实现方法签名:Log.Audit(c);

2)在方法Audit(c)中,我们需要将c转换为适当的类型,并遍历整个对象的属性以进行审计.如何实现这一目标.我在想......

public Audit(T t)
{
 switch (t.GetType())
 {
 case Customer:
    //Audit Customer
    Audit(<Customer> t); 
    break;
 case Car:
    //Audit Car
    Audit(<Car> t); 
 }
}
Run Code Online (Sandbox Code Playgroud)

只是一个猜测,任何帮助都会很棒.

注意:如果您能想出更好的方法来构建此方法,请告诉我们.

再次感谢.史蒂芬

.net design-patterns

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

标签 统计

c# ×3

.net ×2

architecture ×2

design-patterns ×2

wcf ×2

wsdl ×2

generics ×1

oop ×1

types ×1