我是StructureMap的新手。如何使用流畅配置为以下类定义构造函数参数?谢谢。
public BlobContainer(CloudStorageAccount account
, string containerName
, string contentType
, BlobContainerPermissions blobContainerPermissions)
{
}
我是StructureMap的新手。如何使用流畅配置为以下类定义构造函数参数?谢谢。
public BlobContainer(CloudStorageAccount account
, string containerName
, string contentType
, BlobContainerPermissions blobContainerPermissions)
{
}
对于原始类型,您可以按照@ozczecho的回答方式进行:
For<BlobContainer>()
.Use<BlobContainer>()
.Ctor<string>("containerName").Is("theContainerName")
.Ctor<string>("contentType").Is("theContentType");
只要在注册时知道值,就可以这样做。对于非原始类型也可以这样做,但这样会失去容器提供的灵活性。最好定义一个默认或命名实例并使用它(容器将自动为您解析默认实例)。通过定义默认值,您可以通过更改一个注册表来轻松更改应用程序中某个类型的所有依赖项。
For<CloudStorageAccount>().Use<TheCloudStorageAccountType>();
如果一个依赖是具体类型,其构造函数有依赖关系,这些依赖关系已知于StructureMap,则无需在容器中注册它,它将自动解析。 For<BlobContainer>()
.HybridHttpOrThreadLocalScoped()
.Use<BlobContainer>()
.Ctor<CloudStorageAccount >("account").Is(...)
.Ctor<string >("containerName").Is(...)
.Ctor<string >("contentType").Is(...)
.Ctor<BlobContainerPermissions >("blobContainerPermissions").Is(...);